Поиск файлов в Linux с помощью командной строки

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 с помощью командной строки
Поиск файлов в Linux с помощью командной строки

Поиск пустого файла

Чтобы найти пустой файл или файлы в 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 позволяет эффективно находить файлы по каталогам и подкаталогам.

Nazario

Я — Nazario, создатель и автор сайта linuxwin.ru, специализируюсь на информационных технологиях с акцентом на системное администрирование Linux и Windows, веб-разработку и настройку различных систем.

Linux и Windows
Выскажите своё мнение или присоединяйтесь к обсуждению:

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