что делает команда locate

Команда locate в Linux

Команда locate Linux используется для поиска файлов, расположенных на машине пользователя или на сервере. Фактически она выполняет ту же работу, что и команда find, однако, ведёт поиск в собственной базе данных. Find же шаг за шагом проходит через всю иерархию директорий.

Обновление базы данных locate происходит автоматически, как правило, раз в сутки. Настроить желаемый интервал между сканированиями системы можно с помощью планировщика задач Cron.

Синтаксис и опции locate

В эмуляторе терминала команда locate записывается в таком формате:

locate опции шаблон_для_поиска

Примеры использования locate

Если нужно найти файлы, соответствующие сразу нескольким шаблонам, используется опция -A. Шаблоны разделяются пробелом:

Опция -w включена по умолчанию, поэтому locate проверяет на соответствие шаблону не только имена файлов, но и названия папок, в которых эти файлы расположены. Например, если Документ1.ods находится по адресу Компьютер/БухалтерияДоки/ВсеДокументы/, он будет выведен командой при использовании шаблонов «Док», «Бух» и «Все». Для того, чтобы в результатах отображались только файлы с именами, в которых присутствует шаблон, применяется опция -b.

что делает команда locate. Смотреть фото что делает команда locate. Смотреть картинку что делает команда locate. Картинка про что делает команда locate. Фото что делает команда locate

На скриншоте видно, как команда обрабатывает запросы с каждой из упомянутых опций.

Команда locate чувствительна к регистру. Если, к примеру, шаблон имеет вид «GrEEn», файлы с именами green и GREEN в процессе поиска будут игнорироваться. Для того, чтобы найти все документы, независимо от наличия строчных и заглавных букв в их названиях, используется опция -i.

Порой в названиях файлов встречаются буквы с диакритическими знаками (умлаутами, акутами, тремами и прочими). Эти документы не будут найдены, если в команде используется шаблон, состоящий из обычных букв. И наоборот, если в шаблоне есть буквы с диакритическими знаками, команда проигнорирует файлы, в названиях которых отсутствуют аналогичные символы. «Стереть» разницу между буквами с диакритическими знаками и без них можно при помощи опции -t.

что делает команда locate. Смотреть фото что делает команда locate. Смотреть картинку что делает команда locate. Картинка про что делает команда locate. Фото что делает команда locate

По умолчанию команда locate осуществляет поиск в собственной базе данных mlocate.db, однако, умеет работать и с пользовательскими БД. Для этого предусмотрена следующая опция: database.

Можно одновременно осуществлять поиск в нескольких базах данных, при этом названия файлов этих баз нужно разделять двоеточием:

Результаты будут выведены отдельно для каждой базы данных, в той же очерёдности, с которой базы данных были перечислены в запросе.

что делает команда locate. Смотреть фото что делает команда locate. Смотреть картинку что делает команда locate. Картинка про что делает команда locate. Фото что делает команда locate

Файлы, добавленные в систему до обновления стандартной базы данных, не обнаруживаются командой locate. Также в результатах могут появляться уже несуществующие (удалённые) документы. Для того, чтобы актуализировать выдачу, используется опция -e.

Глядя на скриншот, легко сравнить результаты поиска с опцией и без неё.

что делает команда locate. Смотреть фото что делает команда locate. Смотреть картинку что делает команда locate. Картинка про что делает команда locate. Фото что делает команда locate

Кроме того, можно обновить базу данных вручную, выполнив в терминале команду:

что делает команда locate. Смотреть фото что делает команда locate. Смотреть картинку что делает команда locate. Картинка про что делает команда locate. Фото что делает команда locate

Выводы

Команда locate linux позволяет быстро и легко найти файлы, затерявшиеся в недрах системы. Если какие-то аспекты её работы остались для вас непонятными, задавайте вопросы в комментариях.

Источник

15 полезных практических примеров команды locate в Linux

Новичкам в операционной системе Linux бывает непросто сориентироваться в файловой системе, быстро найти нужный файл. Между прочим, командная строка Linux предоставляет отличные инструменты, которые позволят быстро найти нужные файлы. Двумя самыми распространёнными утилитами являются find и locate.

Каждая из этих программ имеет свою специфику. Особенностью locate является то, что она предназначена для поиска по имени файла и делает это ОЧЕНЬ быстро, поскольку имеет заранее подготовленный кэш. Поиск происходит не по всей файловой системе, а по кэшу, благодаря такой оптимизации нужный файл можно найти за доли секунды.

В этой статье будет показано несколько примеров использования команды locate, которые помогут вам быть более продуктивным.

1. Использование команды locate

Простейшим случаем использования команды locate является указание имени файла (или части имени) файла, который вы хотите найти:

что делает команда locate. Смотреть фото что делает команда locate. Смотреть картинку что делает команда locate. Картинка про что делает команда locate. Фото что делает команда locate

2. Ограничение количества показываемых результатов

Опцией -n вы можете ограничить количество возвращаемых результатов, чтобы избежать избыточного вывода:

Например, вы хотите для вашего запроса вывод только 20 результатов, вы можете набрать следующую команду:

3. Показ числа найденных файлов

Если вы хотите отобразить количество всех найденных по вашему запросу файлов, то используйте ключ -c:

4. Поиск locate без учёта регистра

По умолчанию locate настроена быть чувствительной к регистру при обработке запросов, это означает, что TEXT.TXT даст вам другие результаты чем дал бы запрос text.txt.

Чтобы команда locate не обращала внимание на регистр букв и выводила результаты независимо от заглавных или маленьких букв, используйте опцию -i:

5. Обновление базы данных mlocate

Поскольку команда locate полагается на базу данных, называемую mlocate, эту базу данных нужно регулярно обновлять, чтобы утилита работала должным образом. На самом деле, система сама в фоне время от времени запускает этот процесс обновления, если вы хотите запустить процесс обновления базы данных прямо сейчас, то выполните команду (для неё требуются привилегии суперпользователя):

6. Отображение только файлов, существующих в файловой системе

Вы можете использовать ключ -e, который приведёт к тому, что программа locate перед выводом результатов будет каждый из них проверять – действительно ли он существует или это просто старая запись в базе данных. Если файл не существует, то он не будет показан.

7. Вывод записей без символа «новая строка»

Команда locate в качестве разделителя результатов поиска использует символ «новая строка» (\\n). Но если вы предпочитаете использовать другой разделитель, такой как ASCII NUL, вы можете сделать это используя опцию -0.

8. Обзор вашей локальной базы данных Locate

Если вы хотите узнать статус и некоторую статистику по вашей базе данных mlocate.db, то используйте опцию -S:

9. Подавление сообщений об ошибках

Иногда доступ к базе данных mlocate.db выводит сообщения об ошибках, говорящих, что вы обычный пользователь и у вас нет прав для доступа к некоторым данным. Чтобы полностью убрать эти сообщения используйте опцию -q:

10. Выбор другого расположения mlocate

Если вы хотите сделать запрос не к базе данных mlocate по умолчанию, а к другой mlocate.db размещённой в системе где-то в другом месте, вы можете указать locate на иное расположение базы данных mlocate с помощью опции -d:

11. Поиск файлов с locate по всем пользователям

По умолчанию команда locate показывает в результатах только те файлы, к которым текущий пользователь имеет права на доступ. Для того, чтобы были показаны файлы для всех пользователей системы, используйте sudo:

12. Поиск по нескольким именам файлов

Программа locate умеет искать сразу по нескольким именам файлов, для этого достаточно одновременно указать имена или их части:

13. Поиск по нескольким образцам, встречающимся в одном имени файла

Вы можете делать поиск сразу по нескольким строкам, но если вы хотите, чтобы выводились результаты только для тех файлов, в которых есть все указанные строки, то используйте опцию -A:

14. Игнорирование пути до файла при поиске

Вы, наверное, уже обратили внимание, что locate считает файл подходящим и показывает его в поиске, если искомая строка встречается не только в названии файла, но и в пути (в названии директорий, в которых размещён этот файл). Если вы хотите сделать поиск только по имени файла без поиска по путям, то используйте опцию -b:

15. Поиск locate по регулярным выражениям

Команда locate по умолчанию использует поиск по паттернам (образцам). Если вы хотите сделать поиск по регулярным выражениям, то для этого имеется две опции:

При использовании регулярных выражений вам, скорее всего, понадобятся кавычки.

В рассмотренном выше примере сделан поиск только по базовому имени файла, причём, ищутся файлы, начинающиеся с любого сочетания маленьких букв и точки, длиной от 1 до 3 символов, далее должны идти три символа, составленные из двух символов tx в любом сочетании.

Как мы видим, команда locate делает поиск по именам файлов в Linux эффективным благодаря скорости работы и большому количеству опций. Эта программа будет полезна как для новичков, которые могут её использовать в простых случаях, когда достаточно найти файл по его имени, так и для более продвинутых пользователей, которые сочетая опции и регулярные выражения смогут решить задачи любой сложности по поиску файлов.

Источник

Примеры использования команды Locate для начинающих

Суббота, 29 Апрель 2017 22:27

В этой статье вы узнаете о использовании команды locate из простых для понимания примеров. Обратите внимание, что все инструкции/примеры, приведенные здесь, были протестированы на Ubuntu 16.04 LTS, а в locate мы использовали версию 0.26.

1. Как использовать команду locate в Linux

Например, если вам нужно найти все файлы, которые имеют в своём названии строку «dir2», то сделать это можно с помощью locate следующим образом:

Примечание: команда ‘locate dir2’ (без звездочки) будет действовать так же, как locate implicitly,то есть заменять имя пропуска (говорите имя) с *имя*.

Причиной почему locate работает так быстро является то,что он не читает файловую систему для поиска файла или каталога. На самом деле locate относится к базе данных (подготовленный updatedb), чтобы найти то, что пользователь ищет, и на основании этого поиска, вывести файл.

Это хороший подход, но он имеет свои недостатки. Главной проблемой является то, что после каждого нового файла или каталога создающегося в системе, вам нужно обновлять базу данных инструмента для его правильной работы. В противном случае команда не сможет найти файлы/каталоги, созданные после последнего обновления базы данных.

Например, если я пытаюсь найти файлы с именами, содержащими ‘tosearch’ строку в «загрузки»,то каталог моей выдает только один результат

Но когда я пробую выполнить тот же поиск с помощью команды locate, он производит никакого вывода.

Это означает, что база данных locate не обновлялась после того, как файл был создан системой. Итак, давайте обновим базу данных, которая может быть создана с помощью команды locate. Вот как вы делаете это:

И теперь, когда я обновил команду locate, она показывает файлы на выходе:

Кроме того, после поиска файл или папка будут удалены, вы должны убедиться, что база данных поиска была обновлена, так как в противном случае команда будет продолжать показывать этот файл.

3. Как сделать так,чтобы команда locate показывала количество совпадающих записей на выходе

4. Как заставить locate печатать только те записи, которые соответствуют существующим файлам

Например, я удалил файл ‘filetosearch.txt из моей системы. Это было подтверждено командой locate, которая не смогла выполнить поиск файла:

Но когда я провел те же операции с помощью поиска, он по-прежнему показывал этот файл:

Вот что говорится об этой опции на странице руководства: «только операции печати, которые ссылаются на файлы, существующие на момент поиска это выполнить».

5. Как сделать так,чтобы locate игнорировал различия регистра

Например, у меня есть два файла в моей системе ‘newfiletosearch.txt и NEWFILETOSEARCH.txt’. Так что, как видите, имена одинаковые. Если вы запустите locate для поиска, скажем, «*tosearch*», тогда он будет показывать только строчные названия:

Но через опция-I командной строки команда игнорирует, и имена обоих файлов в результате производятся :

6. Как отделить записи с нулевым кодом ASCII

7. Как просмотреть информацию о поиске базы данных

8. Как искать точное имя файла с помощью команды locate

Заключение

locate предлагает намного больше вариантов, но тех, что мы обсуждали здесь должно быть достаточно, чтобы дать вам основную идею о полезности командной строки. Мы бы вам посоветовали сначала попробовать все варианты, описанные здесь, в Linux, а затем переключиться на другие, которые вы можете найти в инструментах страницы.

В случае любого сомнения или вопроса, пожалуйста, не стесняйтесь, напишите в комментарии.

Источник

Команда locate в Linux

Одна из самых распространенных операций при работе в Linux — это поиск файлов и каталогов. В системах Linux есть несколько команд, которые позволяют искать файлы, причем поиск и определение местоположения являются наиболее часто используемыми.

Команда locate — это самый быстрый и простой способ поиска файлов и каталогов по их именам.

Установка locate (команда locate не найдена)

В зависимости от дистрибутива и того, как была подготовлена система, пакет locate может быть предварительно установлен или не установлен в вашей системе Linux.

Если locate не установлен, вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива.

Установите locate на Ubuntu и Debian

Установить locate на CentOS и Fedora

Как locate работу

Базу данных можно обновить вручную, запустив updatedb от имени пользователя root или пользователя с привилегиями sudo:

Процесс обновления займет некоторое время, в зависимости от количества файлов и каталогов, а также скорости вашей системы.

Файлы, созданные после обновления базы данных, не будут отображаться в результатах поиска.

По сравнению с более мощной командой find которая выполняет поиск в файловой системе, команда locate работает намного быстрее, но не имеет многих функций и может выполнять поиск только по имени файла.

Как использовать команду locate

Синтаксис команды locate следующий:

В самой простой форме, при использовании без каких-либо параметров, команда locate выводит на печать абсолютный путь ко всем файлам и каталогам, которые соответствуют шаблону поиска и для которых пользователь имеет разрешение на чтение.

Если список результатов длинный, для лучшей читаемости вы можете направить вывод в команду less :

По умолчанию locate не проверяет, существуют ли еще найденные файлы в файловой системе. Если вы удалили файл после последнего обновления базы данных, и если файл соответствует шаблону поиска, он будет включен в результаты поиска.

Выводы

Команда locate ищет в файловой системе файлы и каталоги, имена которых соответствуют заданному шаблону. Синтаксис команды легко запомнить, а результаты отображаются практически мгновенно.

Для получения дополнительной информации обо всех доступных параметрах команды locate введите команду man locate в вашем терминале.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии.

Источник

Команда Locate в Linux (Поиск Файлов и Каталогов)

Locate Command in Linux

В этом руководстве мы объясним, как использовать locate команду.

Установка locate (если команда locate не найдена)

В зависимости от дистрибутива и от того, как была предоставлена ​​система, пакет locate может быть или не быть предварительно установлен в вашей системе Linux.

Если 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 команда напечатает абсолютный путь ко всем файлам и каталогам, который соответствует шаблону поиска и для которого пользователь имеет разрешение на чтение.

Если список результатов длинный, для лучшей читаемости вы можете направить вывод в less команду:

По умолчанию locate не проверяет, существуют ли найденные файлы в файловой системе. Если вы удалили файл после последнего обновления базы данных, если файл соответствует шаблону поиска, он будет включен в результаты поиска.

Вывод

Команда locate ищет в файловой системе файлы и каталоги, чье имя соответствует заданному шаблону. Синтаксис команды легко запомнить, а результаты отображаются практически мгновенно.

Для получения дополнительной информации обо всех доступных опциях типа locate команды man locate в вашем терминале.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *