uz
DF
Daniil Fedorov
июля 8, 2025
Обновлено июля 8, 2025

Find Linux

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

Синтаксис

find [путь] [условия] [действие]

путь: директория, где начинается поиск (по умолчанию — текущая директория).
условия: критерии для фильтрации файлов (например, по имени, размеру и т.д.).
действие: что делать с найденными файлами (например, выводить их на экран, удалять или изменять).

Основные методы использования

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

find /home/user -name "file.txt"

Найдет файл file.txt в директории /home/user и её подкаталогах.

Поиск файлов с игнорированием регистра

find /home/user -iname "file.txt"

Найдет файлы с именем file.txt или FILE.TXT, независимо от регистра.

Поиск файлов по расширению

find /home/user -name "*.jpg"

Найдет все файлы с расширением .jpg в указанной директории.

Поиск файлов, изменённых за последние N дней

find /home/user -mtime -7

Найдет файлы, которые были изменены за последние 7 дней. Если нужно искать файлы, измененные более чем 7 дней назад, используйте +7.

Поиск файлов по размеру

find /home/user -size +100M

Найдет файлы, размер которых больше 100 МБ.

Поиск по правам доступа

find /home/user -perm 644
Найдет файлы с правами доступа 644.

Поиск и выполнение действия с найденными файлами

find /home/user -name “*.log” -exec rm {} \;
Найдет все файлы с расширением .log и удалит их. {} — это плейсхолдер для каждого найденного файла, а \; завершает команду exec.

Поиск файлов по владельцу

find /home/user -user root

Найдет все файлы, принадлежащие пользователю root.

Поиск пустых файлов

find /home/user -empty

Найдет все пустые файлы и каталоги.

Часто используемые опции

-type: позволяет искать файлы по типу (например, -type f для обычных файлов, -type d для директорий).
-maxdepth и -mindepth: ограничивает глубину поиска. Например, -maxdepth 2 ищет файлы только в текущей и одной вложенной директории.
-print: выводит путь к каждому найденному файлу (обычно используется по умолчанию).
Пример комбинированного использования:

find /var/log -name "*.log" -size +10M -exec gzip {} \;

Этот пример найдет все .log файлы размером более 10 МБ в директории /var/log и сожмет их с помощью gzip.

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