Существует несколько способов поиска файлов с терминала в Linux, а также find
, locate
, which
и
1. найти
Простой способ поиска файлов в любом указанном каталоге — использовать команду find
. Если каталог для выполнения поиска не ука
1. найти
к будет выполняться в текущем каталоге.На следующем снимке экрана показано, как в текущем каталоге (.) выполняется поиск всех имен файлов, оканчивающихся на расширение.txt.
Поиск также можно выполнять по временным меткам, правам доступа к файлам, размеру файла, типу файла, владельцу файла и т. д. Для управления параметрами поиска можно использовать регулярные выражения. Более подробные инструкции по команде find
можно найти здесь .
2. найти
Эта команда — еще один способ поиска файлов по имени. Предыдущая команда выполняет поиск в указанном каталоге, а затем предоставляет результаты пользователю. Этот инструмент выполняет поиск в базе данных «mlocate.db», которая находится в «/var/lib/mlocate/mlocate.db». Эта база данных обновляется каждое утро с помощью утилиты cron.
Команда выполняется быстрее, чем find
, поскольку поиск ведется по существующей базе данных, в которой уже есть список всех файлов и каталогов в системе.
locate
, за которым следует имя файла, отображает абсолютный путь, по которому существует этот файл.
Предположим, что скрипт создан в домашнем каталоге.
Если мы попытаемся найти вновь созданный и скопированный скрипт, мы не получим никаких результатов.
locate myscript
Поскольку cron обновляет базу данных только утром, любые файлы добавляются в систему в течение дня, поэтому базу данных необходимо обновлять вручную. Это можно сделать с помощью команды updatedb
.
sudo updatedb
Если мы попытаемся «найти» пользовательский скрипт, он сможет найти файл.
3. который
После обсуждения команд для поиска файлов давайте перейдем к одной команде, которая поможет найти абсолютный путь к исполняемым файлам в системе: which
.
Один исполняемый файл/скрипт/двоичный файл может присутствовать в нескольких местах системы. which
ищет в каталогах, указанных в переменных среды $PATH и $MANPATH, наличие указанного исполняемого файла.
Без каких-либо переключателей which
отображает первый найденный абсолютный путь к исполняемому файлу.
Переключатель
-a
отображает все вхождения найденных абсолютных путей для указанного исполняемого файла.
Абсолютные пути для нескольких исполняемых файлов можно найти, указав исполняемые файлы один за другим.
4. где
whereis
— это еще одна команда, которая используется для получения трех частей информации об исполняемом файле:
- абсолютный путь к двоичному файлу
- абсолютный путь, по которому в системе существует исходный код этого двоичного файла.
- абсолютный путь к руководству, существующему для этого двоичного файла 3. которыйecoding="async" src="https://saintist.ru/wp-content/uploads/2024/05/compare-whereis.png" alt="Сравнить">
Двоичный файл «bzgrep» находится в «/bin», а руководство — в «/usr/share/man/man1». Его исходный код не существует в системе.
whereis
можно указать искать только абсолютный путь к двоичному файлу с помощью переключателя -b
. Поиск можно осуществлять только в каталогах, перечисленных после переключателя -B
. Имена после -f
указывают все двоичные файлы, для которых необходимо получить информацию.
Аналогично, поиск можно ограничить только исходным кодом или только руководствами, используя переключатели -s
и -m
. -S
и –M
, за которыми следуют имена каталогов, указывают каталоги для поиска исходного кода и руководств соответственно.
Переключатель
-l
предоставит подробный список абсолютных путей ко всем каталогам, используемым whereis
для выполнения поиска.
Заключение
У вас нет недостатка в инструментах для поиска файлов в терминале. Надеюсь, теперь у вас есть хорошее представление о четырех полезных инструментах поиска в системах Linux. Если вам нужна дополнительная информация об их использовании, вы можете просмотреть их руководства для получения подробной документации.