Используйте команду «Найти» для поиска файлов (с примерами)
В этом руководстве показано, как использовать команду locate
для быстрого поиска файлов в вашей системе Linux.
В Ubuntu Linux команда locate
предоставляется пакетом plocate. Это очень быстрый инструмент поиска из командной строки, который может найти все файлы в системе, соответствующие заданному шаблону. Ему редко требуется сканировать всю базу данных, и большая часть операций ввода-вывода выполняется асинхронно, но результаты синхронизируются.
Самое главное, что plocate прост в использовании! Я регулярно использую его для поиска изображений значков приложений, которые используются на большинстве страниц этого сайта.
1. Установите Плокате
Plocate доступен в системном репозитории, но не предустановлен в Ubuntu Linux.
Чтобы получить инструмент, вам нужно сначала запустить команду для установки пакета:
sudo apt install plocate
2. Обновите базу данных Plocate.
Установка команды plocate автоматически создаст базу данных, которая по умолчанию доступна в каталоге /var/lib/plocate
.
На данный момент файлы в вашей системе различаются. Поэтому вам может потребоваться регулярно обновлять базу данных вручную, выполнив команду:
sudo updatedb
В моем случае в Ubuntu 22.04 Desktop база данных занимает всего 18 МБ дискового пространства.
3. Используйте командуlocate для поиска файлов.
Командаlocate довольно проста в использовании. Вы можете использовать его, чтобы найти файл с точным именем. Например:
locate firefox.desktop
Приведенная выше команда выведет список всех файлов firefox.desktop
в вашей системе, включая полный путь.
Иногда файлы, которые вы собираетесь искать, содержат как прописные, так и строчные буквы.
В этом случае вы можете использовать -i
(или --ignore-case
) для выполнения поиска без учета регистра.
locate -i gthumb.desktop
Как вы видите на скриншоте, команда выводит gThumb.desktop
в результатах поиска.
Командаlocate поддерживает несколько шаблонов. Если задано более одного, он будет искать файлы, соответствующие каждому из них!
Например, вы можете искать файлы в определенном каталоге с помощью команды:
locate /usr/share/icons firefox
Приведенная выше команда будет искать файлы в каталоге /usr/share/icons
, используя firefox
в имени файла или пути.
Вы можете добавить дополнительные условия, например, команда ниже будет искать файлы в каталоге /usr/share/icons
с помощью firefox
, .svg
и 64x64
в пути или имени файла.
locate /usr/share/icons/ firefox .svg 64x64
Как вы видите выше, locate
также выполняет поиск по заданному ключевому слову по пути (папке и каталогу).
Чтобы пропустить их и сопоставлять только с именем файла, используйте флаг -b
или (--basename
).
locate --basename Papirus
Приведенная выше команда ищет только файлы, содержащие Papirus
в именах файлов, но исключает папки и каталоги (но все равно печатается).
Если вы хотите подсчитать количество совпадений, используйте опцию -c
или --count
. В этом случае файлы не будут распечатаны, а будет показано только их общее количество.
По выбору вы также можете ограничить совпадения с помощью опции -l
или --limit
. В этом случае поиск прекращается после того, как будет найдено ограниченное количество совпадений.
Опытные пользователи могут использовать регулярное выражение в качестве шаблона поиска, используя -r
или --regexp
(или --regex
). для расширенных регулярных выражений POSIX).
Например, используйте команду ниже для поиска всех файлов .png
в папке «Изображения» пользователя, после чего после screenshot
следует номер в имени файла.
locate --regexp --ignore-case $HOME/pictures .*screenshot.*[0-9].*\.png$
Краткое содержание
Ubuntu Linux предоставляет пакет locate
в системном репозитории, который включает команду locate
для быстрого поиска файлов в системе.
Пользователь может просто запустить команду locate
, следуя шаблону для поиска в файлах и путях. Допускается использование нескольких шаблонов (разделенных пробелом), и программа будет искать файлы, соответствующие каждому из них! По умолчанию он также выполняет поиск по пути (именам папок/каталогов), который можно отключить с помощью флага -b
или --basename
. Используйте -i
или --ignore-case
, чтобы выполнить поиск без учета регистра, если вы не знаете, есть ли в тексте буквы в верхнем или нижнем регистре. имена файлов.
И есть несколько других опций, таких как --limit
для ограничения результатов поиска и count
для вывода общего количества файлов. Опытные пользователи могут использовать регулярные выражения -r
или --regexp
для более гибкого поиска файлов.