Топ-20 самых полезных флагов find#

Флаг Назначение
-name Поиск по имени
-iname Поиск без учёта регистра
-type f Только файлы
-type d Только папки
-size Поиск по размеру
-mtime Фильтр по дате изменения
-atime Фильтр по дате последнего доступа
-user Фильтр по владельцу
-group Фильтр по группе
-perm Фильтр по правам доступа
-empty Пустые файлы и папки
-maxdepth Ограничение глубины поиска
-mindepth Минимальная глубина поиска
-delete Удаление найденных файлов
-exec Выполнение команды для найденных файлов
-execdir Выполнение команды из директории найденного файла
-print0 Нулевой разделитель для безопасной работы с пробелами
-regex Поиск по регулярным выражениям
-ls Детальный вывод как ls -l
-newer Фильтр по “новее, чем файл”

🟢 Уровень 1 — Базовые команды (разогрев)#

find .

  • Найти все файлы и папки в текущем каталоге

find /path -name file.txt

  • Найти файл file.txt по имени

find . -type f

  • Найти только файлы

find . -type d

  • Найти только директории

find . -maxdepth 1

  • Искать только в текущем каталоге, без рекурсии

find . -name "*.txt"

  • Найти все .txt файлы

🟡 Уровень 2 — Поиск по условиям#

find . -iname "*.jpg"

  • Поиск без учёта регистра (.jpg, .JPG)

find . -type f -size +10M

  • Файлы больше 10MB

find . -type f -size -100k

  • Файлы меньше 100KB

find . -empty

  • Пустые файлы и каталоги

find . -type f -perm 644

  • Файлы с правами 644

find . -type f -executable

  • Исполняемые файлы

🟠 Уровень 3 — По дате и времени#

find . -type f -mtime -1

  • Файлы, изменённые за последние сутки

find . -type f -mtime +30

  • Файлы старше 30 дней

find . -type f -atime -7

  • Файлы, к которым обращались за последние 7 дней

find . -newer file.txt

  • Файлы, изменённые позже, чем file.txt

find . -cmin -10

  • Файлы, изменённые за последние 10 минут

🔵 Уровень 4 — Действия с файлами#

find . -type f -delete

  • Удалить все найденные файлы

find . -name "*.log" -exec rm {} \;

  • Удалить все .log файлы

find . -name "*.sh" -exec chmod +x {} \;

  • Сделать все .sh файлы исполняемыми

find . -name "*.txt" -exec cp {} /backup/ \;

  • Скопировать все .txt в /backup/

find . -name "*.conf" -exec grep "DEBUG" {} \;

  • Ищет DEBUG внутри всех .conf файлов

🟣 Уровень 5 — Оптимизация и комбинирование#

find . -name "*.txt" -o -name "*.md"

  • Найти файлы с расширениями .txt или .md

find . -type f \( -name "*.jpg" -o -name "*.png" \)

  • Найти все картинки .jpg и .png

find . -type f ! -name "*.txt"

  • Все файлы, кроме .txt

find . -type f -size +10M -and -name "*.mp4"

  • Видео больше 10MB

find . -type f -mtime -7 -and -name "*.log"

  • Логи, изменённые за неделю

🔴 Уровень 6 — Мощные комбинации#

find . -type f -print | xargs wc -l

  • Подсчёт строк во всех файлах

find . -name "*.log" -exec gzip {} \;

  • Сжать все .log файлы

find . -name "*.tar.gz" -exec tar -tf {} \;

  • Просмотреть содержимое архивов

find . -type f -name "*.c" -exec grep -H "main" {} \;

  • Найти функцию main во всех .c файлах

find / -name "*.conf" 2>/dev/null

  • Искать .conf по всей системе (скрывая ошибки доступа)

🟤 Уровень 7 — Гуру-режим#

find . -type f -print0 | xargs -0 rm

  • Удалить файлы с пробелами в именах

find . -type f -size +100M -print0 | xargs -0 -n 1 -P 4 mv -t /mnt/large/

  • Переместить большие файлы параллельно

find . -type f -exec sha256sum {} +

  • Посчитать хэши всех файлов

find . -type f -printf "%p %k KB\n"

  • Показать размер файлов в KB (GNU find)

find . -regex ".*\(jpg\|png\|gif\)$"

  • Поиск по регулярному выражению

find . -type f -execdir cp {} /backup/ \;

  • Копировать найденные файлы из их директорий