- Установка locate и updatedb в Unix/Linux
- Установка locate и updatedb в Unix/Linux
- Установка locate и updatedb в Unix/Linux
- Использование locate и updatedb в Unix/Linux
- Команда locate в Linux
- Установка locate (команда locate не найдена)
- Установите locate на Ubuntu и Debian
- Установить locate на CentOS и Fedora
- Как locate работу
- Как использовать команду locate
- Выводы
- Команда locate в Linux
- Синтаксис и опции locate
- Примеры использования locate
- Выводы
Установка locate и updatedb в Unix/Linux
Установка locate и updatedb в Unix/Linux
В моей статье «Установка locate и updatedb в Linux» речь пойдет о прекрасной утилите под названием locate. ‘locate’ и ‘updatedb’ — это утилиты для поиска любых файлов на ОС Linux.
Чтобы установить их, выполните шаги что приведены ниже.
Установка locate и updatedb в Unix/Linux
Установка locate и updatedb в Debian/Ubuntu/Mint:
Установка locate и updatedb в CentOS/Fedora/RedHat:
Установка locate и updatedb в Mac OS X:
Или создаем алиас в .bashrc или .zshrc:
Использование locate и updatedb в Unix/Linux
Обновляем список файлов:
И после чего можно пользоваться, например мне нужно найти расположение файла datedetector.py (для добавление конфигурации fail2ban), то для этого нужно выполнить:
Данное руководство документирует версию GNU о updatedb, которая обновляет базы данных всех имен для файлов, используемые GNU locate. Базы данных имен всех файлов содержат списки файлов, которые были найдены в ходе сканирования данной утилиты. Имя файла базы данных по умолчанию определяется при установке и настройке locate и updatedb. Частота, с которой выполняется обновление баз и каталогов, для которых они содержат записи зависит от того, как часто updatedb запускается и так же от аргументов которые переданы в конфиге.
В сетевых средах, часто имеет смысл создать базу данных в корне каждой файловой системы, содержащий записи для этой файловой системы. Запустите updatedb для каждой файловой системы на файловом сервере, где это файловая система находится на локальном диске. Пользователи могут выбрать, какие базы данных нужно искать с помощью переменной среды или параметра командной строки. Базы данных не могут быть объединены вместе.
Новый GNU locate можно прочитать и старые, и новые форматы баз данных.
Опции для updatedb.
-u
Создать slocate базу данных, начиная с корневого каталога. Это происходит по умолчанию, если вызывается updatedb.
-U path
Создать slocate базу данных, начиная с указанного пути.
-e dirs
Исключить каталоги разделенными запятыми из базы данных slocate.
-f fstypes
Исключить файловые системы, разделенные запятыми из базы данных slocate.
-l
Уровень безопасности. -l 0 означает что проверки безопасности выключены, что сделает поиск быстрее. -l 1 означает что проверки безопасности включены. Это по умолчанию.
-q
Тихий режим; Сообщения об ошибках подавляются.
-v
Подробный режим; Показать файлы которые индексируются при создании базы данных.
—help
Распечатать список опций для slocate и выйти.
—version
Вывести номер версии slocate и выйти.
—output=dbfile
Файл базы данных, чтобы построить. По умолчанию зависит от системы, но обычно это/usr/local/var/locatedb.
—netuser=user
Пользователю говорится искать сетевые каталоги, как, используя SU. По умолчанию
—old-format
Создание базы данных в старом формате вместо нового.
Показывает все файлы, которые содержат строку «project». Если эта команда не работает, вам нужно будет выполнить команду:
Эта команда создает slocate базу данных, которая позволит вам использовать команду найти (slocate). Это может занять несколько минут.
Опции для locate.
-u
Создать slocate базу данных, начиная с пути /.
-U dir
Создать slocate базу данных, начиная с пути.
-e
Исключить каталоги из базы данных slocate.
-f
Исключить файлы на конкретной файловой системы из базы данных slocate.
-c
Разпарсить «/etc/updatedb.conf» при обновлении базы данных slocate.
-l
Уровень безопасности. 0 означает что проверки безопасности выключена. Это сделает Осуществляет поиск быстрее. 1 означает что проверки безопасности включены. Это по умолчанию.
-i
Делает поиск без учета регистра.
-q
Тихий режим. Сообщения об ошибках подавляются.
-n
Ограничьте количество результатов.
-r
—regexp=
Поиск по базе данных с помощью базовых регулярных выражений в POSIX.
-o
—output=
Указывает базу данных, чтобы создать ее.
-d
—database=
Указывает путь базы данных для поиска.
-h
—help вывод помощи.
-v
—verbose
Подробный режим. Отображение файлов при создании базы данных.
-V
—version
Отображение версии.
На этом, моя тема «Установка locate и updatedb в Unix/Linux» подошла к завершению.
Источник
Команда locate в Linux
Одна из самых распространенных операций при работе в Linux — это поиск файлов и каталогов. В системах Linux есть несколько команд, которые позволяют искать файлы, причем поиск и определение местоположения являются наиболее часто используемыми.
Команда locate — это самый быстрый и простой способ поиска файлов и каталогов по их именам.
В этой статье мы объясним, как использовать команду locate .
Установка locate (команда locate не найдена)
В зависимости от дистрибутива и того, как была подготовлена система, пакет locate может быть предварительно установлен или не установлен в вашей системе Linux.
Чтобы проверить, установлена ли утилита locate , откройте терминал, введите locate и нажмите Enter . Если пакет установлен, система отобразит locate: no pattern to search for specified . В противном случае вы увидите что-то вроде locate command not found .
Если locate не установлен, вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива.
Установите locate на Ubuntu и Debian
Установить locate на CentOS и Fedora
Как locate работу
Команда locate выполняет поиск заданного шаблона в файле базы данных, созданном командой updatedb . Найденные результаты отображаются на экране по одному в строке.
Во время установки пакета mlocate создается задание cron, которое запускает команду updatedb каждые 24 часа. Это гарантирует регулярное обновление базы данных. Для получения дополнительной информации о задании cron проверьте файл /etc/cron.daily/mlocate .
Базу данных можно обновить вручную, запустив updatedb от имени пользователя root или пользователя с привилегиями sudo:
Процесс обновления займет некоторое время, в зависимости от количества файлов и каталогов, а также скорости вашей системы.
Файлы, созданные после обновления базы данных, не будут отображаться в результатах поиска.
По сравнению с более мощной командой find которая выполняет поиск в файловой системе, команда locate работает намного быстрее, но не имеет многих функций и может выполнять поиск только по имени файла.
Как использовать команду locate
Синтаксис команды locate следующий:
В самой простой форме, при использовании без каких-либо параметров, команда locate выводит на печать абсолютный путь ко всем файлам и каталогам, которые соответствуют шаблону поиска и для которых пользователь имеет разрешение на чтение.
Например, чтобы найти файл с именем .bashrc , введите:
Вывод будет включать имена всех файлов, содержащих в своих именах строку .bashrc :
Файл /root/.bashrc не будет показан, потому что мы /root/.bashrc команду как обычный пользователь, у которого нет прав доступа к каталогу /root .
Если список результатов длинный, для лучшей читаемости вы можете направить вывод в команду less :
Команда locate также принимает шаблоны, содержащие символы подстановки, такие как подстановочный знак * . Если в шаблоне нет дополнительных символов, команда ищет *PATTERN* . Поэтому в предыдущем примере отображались все файлы, содержащие в своем имени шаблон поиска.
Подстановочный знак — это символ, используемый для обозначения нуля, одного или нескольких символов. Например, чтобы найти все файлы .md в системе, вы должны ввести:
Чтобы ограничить результаты поиска, используйте параметр -n после которого укажите количество результатов, которые вы хотите отобразить. Следующая команда .py поиск всех файлов .py и отобразит только 10 результатов:
По умолчанию locate выполняет поиск с учетом регистра. Параметр -i ( —ignore-case ) указывает locate игнорировать регистр и запускать поиск без —ignore-case регистра.
Чтобы отобразить количество всех совпадающих записей, используйте параметр -c ( —count ). Следующая команда вернет количество всех файлов, содержащих .bashrc в своих именах:
По умолчанию locate не проверяет, существуют ли еще найденные файлы в файловой системе. Если вы удалили файл после последнего обновления базы данных, и если файл соответствует шаблону поиска, он будет включен в результаты поиска.
Чтобы отображать только имена файлов, которые существуют на момент запуска locate , используйте параметр -e ( —existing ). Например, следующее будет возвращать только существующие файлы .json :
Если вам нужно выполнить более сложный поиск, используйте параметр -r ( —regexp ), который позволяет вам искать, используя базовое регулярное выражение вместо шаблонов. Этот параметр можно указывать несколько раз.
Например, чтобы найти все файлы .mp4 и .avi в вашей системе и игнорировать регистр, вы должны запустить:
Выводы
Команда locate ищет в файловой системе файлы и каталоги, имена которых соответствуют заданному шаблону. Синтаксис команды легко запомнить, а результаты отображаются практически мгновенно.
Для получения дополнительной информации обо всех доступных параметрах команды locate введите команду man locate в вашем терминале.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии.
Источник
Команда locate в Linux
Команда locate Linux используется для поиска файлов, расположенных на машине пользователя или на сервере. Фактически она выполняет ту же работу, что и команда find, однако, ведёт поиск в собственной базе данных. Find же шаг за шагом проходит через всю иерархию директорий.
Обновление базы данных locate происходит автоматически, как правило, раз в сутки. Настроить желаемый интервал между сканированиями системы можно с помощью планировщика задач Cron.
Синтаксис и опции locate
В эмуляторе терминала команда locate записывается в таком формате:
locate опции шаблон_для_поиска
- -A (—all) — выводит только файлы, соответствующие всем заданным шаблонам.
- -b (—basename) — выводит файл, если его название соответствует шаблону.
- -c (—count) — вместо адресов выводит количество найденных файлов.
- -d (—database) — меняет базу данных для поиска, установленную по умолчанию, на пользовательскую.
- -e (—existing) — поиск файлов, существующих на момент запуска команды.
- -L (—follow) — при применении —existing заставляет команду использовать символические ссылки вместо жёстких. Опция —follow включена по умолчанию.
- -h (—help) — выводит справку.
- -i (—ignore-case) — делает команду нечувствительной к регистру.
- -p (—ignore-spaces) — заставляет команду игнорировать пробелы и знаки пунктуации.
- -t (—transliterate) — игнорирует диакритические знаки.
- -l, -n (—limit) — ограничивает количество файлов в выводе команды.
- -P (—nofollow) — заставляет команду использовать жёсткие ссылки вместо символических.
- -0 (—null) — включает использование NUL в качестве разделителя строк.
- -S (—statistics) — выводит статистику по каждой базе данных вместо поиска файлов.
- -q (—quiet) — запрещает команде выводить сообщения об ошибках до завершения поиска.
- -r (—regexp) — поиск с использованием регулярных выражений.
- -V (—version) — показывает версию установленной в системе утилиты locate.
- -w (—wholename) — выводит файл, если в его названии либо адресе есть символы, соответствующие шаблону.
Примеры использования locate
Если нужно найти файлы, соответствующие сразу нескольким шаблонам, используется опция -A. Шаблоны разделяются пробелом:
locate -A zima 64
Опция -w включена по умолчанию, поэтому locate проверяет на соответствие шаблону не только имена файлов, но и названия папок, в которых эти файлы расположены. Например, если Документ1.ods находится по адресу Компьютер/БухалтерияДоки/ВсеДокументы/, он будет выведен командой при использовании шаблонов «Док», «Бух» и «Все». Для того, чтобы в результатах отображались только файлы с именами, в которых присутствует шаблон, применяется опция -b.
На скриншоте видно, как команда обрабатывает запросы с каждой из упомянутых опций.
Команда locate чувствительна к регистру. Если, к примеру, шаблон имеет вид «GrEEn», файлы с именами green и GREEN в процессе поиска будут игнорироваться. Для того, чтобы найти все документы, независимо от наличия строчных и заглавных букв в их названиях, используется опция -i.
Порой в названиях файлов встречаются буквы с диакритическими знаками (умлаутами, акутами, тремами и прочими). Эти документы не будут найдены, если в команде используется шаблон, состоящий из обычных букв. И наоборот, если в шаблоне есть буквы с диакритическими знаками, команда проигнорирует файлы, в названиях которых отсутствуют аналогичные символы. «Стереть» разницу между буквами с диакритическими знаками и без них можно при помощи опции -t.
По умолчанию команда locate осуществляет поиск в собственной базе данных mlocate.db, однако, умеет работать и с пользовательскими БД. Для этого предусмотрена следующая опция: —database.
locate —database main-user-tor-database1.db bin/raw
Можно одновременно осуществлять поиск в нескольких базах данных, при этом названия файлов этих баз нужно разделять двоеточием:
locate —database main-user-tor-database1.db:main-user-tor-database2.db bin/raw
Результаты будут выведены отдельно для каждой базы данных, в той же очерёдности, с которой базы данных были перечислены в запросе.
Файлы, добавленные в систему до обновления стандартной базы данных, не обнаруживаются командой locate. Также в результатах могут появляться уже несуществующие (удалённые) документы. Для того, чтобы актуализировать выдачу, используется опция -e.
Глядя на скриншот, легко сравнить результаты поиска с опцией -е и без неё.
Кроме того, можно обновить базу данных вручную, выполнив в терминале команду:
Выводы
Команда locate linux позволяет быстро и легко найти файлы, затерявшиеся в недрах системы. Если какие-то аспекты её работы остались для вас непонятными, задавайте вопросы в комментариях.
Источник