Linux поставляется с мощным инструментом поиска под названием «find«. По умолчанию команда find выполняет поиск файла (или файлов) в подкаталогах на основе определенных условий.
В этой инструкции мы покажем и расскажем, как найти файл в Linux с помощью командной строки.
Вам может быть интересно:
КОМАНДЫ LINUX — ПОЛНОЕ РУКОВОДСТВО
Поиск файла в Linux
Синтаксис команды «find» для поиска файла в Linux выглядит вот так:
find starting-point options expression
starting-point
— это может быть текущий каталог (который вы укажите.) или путь к каталогу с которого следует начать фильтрацию. Если пути не указаны, используется текущий каталог.options
— Этот параметр управляет обработкой символьных ссылок, параметрами отладки и оптимизацией производительности.expression
— то, что нужно искать.
Например:
find -O3
-L /etc -name "*.conf"
- Опция
-03
указывает на выполнение эффективного поиска для повышения производительности. -L
Параметры указывает команде «find» следовать по символическим ссылкам/etc
(Начальная точка) указывает каталог, с которого следует начать поиск-name "*.conf"
(Выражение) указывает команде find, что искать.
Поиск файла в Linux по имени
Вы можете использовать команду «find«, чтобы найти файл по имени. Например, для поиска файла с именем file1.txt в текущем каталоге и подкаталогах. Требуется использовать команду:
find . -name file1.txt
. (точка) указывает на текущий каталог.
Для поиска файла с именем file2.txt в каталоге /home/setiwik и его подкаталогах. Надо написать ввести команду так:
find /home/setiwik -name file2.txt
Чтобы выполнить поиск без учета регистра, используйте параметр -iname вместо -name:
find /home/setiwik -iname File2.txt
Как в Linux искать файлы по расширению
Используйте команду find, чтобы найти файл (или файлы) с нужными расширениями. Например, для поиска файла (или файлов) с расширением «.txt» требуется ввести:
find /home/setiwik -name "*.txt"
Поиск пустого файла
Чтобы найти пустой файл или файлы в Linux, используете опцию тип файла -empty
.
Например, чтобы найти все пустые файлы в каталоге /tmp, введите:
find /tmp -type f -empty
Поиск файлов по времени изменения
Чтобы выполнить поиск файла или файлов в каталоге по времени изменения, используйте параметр -mtime. Например, чтобы найти текстовые файлы, которые были изменены последний раз 60 дней назад, введите:
find /home/username -name "*.txt" -mtime -60
Поиск файла, содержащий определенную строку
Если вы хотите найти файл, содержащий определенную строку, вы можете объединить find и grep вместе.
Чтобы выполнить поиск по всем файлам *.js, содержащим строку «example
«, введите:
find . -name '*.js' -exec grep -i 'example' {} \; -print
В качестве альтернативы вы можете получить те же результаты с помощью команды grep.
Поиск файла и выполнение команды в Linux
Иногда вам нужно найти файл и выполнить команду такую как удаление, разрешение на изменение и т. д. Для этого вы можете использовать опцию -exec.
find /var/www/html -name "wp-config.php" -exec chmod 0644 {} \;
Полезные параметры (опции) при поиска файла
-maxdepth X
— Поиск в текущем каталоге вместе со всеми подкаталогами X уровней.
-iname
— Игнорирование текстового регистра.
-not
— Выводит только результаты, которые не соответствуют тестовому набору
Заключение
Из этого руководства вы научитесь искать файлы в Linux с помощью командной строки. Структура Linux позволяет эффективно находить файлы по каталогам и подкаталогам.