Ubuntu/Debian/AlmaLinux: find - как применять, полезные советы Print

  • администрирование, ubuntu, debian
  • 0

Базовый паттерн: сначала сужаем поиск условиями, потом применяем действие (-print, -delete, -exec).
 
Найти файлы по имени
 
find /var/www -type f -name '*.php' -print
find /etc -type f -iname 'nginx*.conf' -print
 
Ограничить глубину
 
find /var/log -maxdepth 1 -type f -print
 
Исключить каталоги
 
find /var/www -path '/var/www/cache' -prune -o -type f -name '*.js' -print
 
По размеру
 
find / -type f -size +100M -print
find /backup -type f -size -10k -print
 
По дате и времени
 
find /var/log -type f -mtime -1 -print        # изменены за последние сутки
find /data -type f -newermt '2025-09-01' -print
 
По владельцу и правам
 
find /srv -type f -user www-data -print
find / -type f -perm -4000 -print             # SUID файлы
 

Действия: безопасный режим и «массовые» операции

Всегда сначала смотрим, что затронем
 
find /data -type f -name '*.tmp' -print
 
Удаление пустых и временных файлов
 
find /data -type f -empty -delete
find /var/tmp -type f -name '*.tmp' -delete
 
Замена строк в куче файлов
 
find /etc/nginx -type f -name '*.conf' -exec sed -i 's/http1 on;/http2 off;/g' {} +
 
Перемещение найденного в каталог
 
find /incoming -type f -name '*.csv' -exec mv -t /data/csv {} +
 
Сумма размеров найденных файлов
 
find /var/lib/mysql -type f -printf '%s\n' | awk '{s+=$1} END{printf "Total: %.2f GB\n", s/1024/1024/1024}'
 
С нулевыми байтами для корректной обработки пробелов
 
find /media -type f -name '*.php' -print0 | xargs -0 -I{} echo "{}"
 

Частые кейсы «нашего админа»

 
Найти битые симлинки
 
find / -xtype l -print
 
Оставаться в одном ФС (быстро и безопасно)
 
find /var -xdev -type f -size +500M -print
 
Найти потенциально публичные приватные ключи
 
find / -type f -name '*.key' -perm -o+r -print 2>/dev/null
 
Быстрое дерево крупных директорий
 
find /data -xdev -type f -printf '%s\t%h\n' | awk '{a[$2]+=$1} END{for (i in a) printf "%.2f GB\t%s\n", a[i]/1024/1024/1024, i}' | sort -hr | head -n 20
 
Заменить расширение файлов пачкой
 
find /assets -type f -name '*.jpeg' -exec bash -lc 'for p; do mv "$p" "${p%.jpeg}.jpg"; done' _ {} +
 

Производительность и гигиена

 
- Начинайте с узкого префикса пути и -maxdepth.
- Комбинируйте -prune для исключений.
- Для массовых действий используйте {} + вместо многократных вызовов.
- При ошибках доступа добавляйте 2>/dev/null, но лучше запускать от нужного пользователя или sudo.
 

Was this answer helpful?

Related Articles

Какие есть боты/сервисы, которые стоит добавить в исключения? Практический гайд для защиты сайта и бизнеса В современных условиях кибербезопасности настройка блокировок и фильтров — обязательная мера для... Что делать, если сертификаты Let’s Encrypt не обновляются? Простое решение за 5 минут Сертификаты от Let’s Encrypt стали стандартом для бесплатной автоматической защиты сайтов по... Какие сервисы и решения реально помогают? Топ-10 инструментов Почему взламывают сайты и что самое опасное? Современный сайт на WordPress, Битрикс, Joomla,... Лучшие версии PHP и MySQL сейчас для WordPress: что выбрать для максимальной стабильности и скорости? WordPress — самая популярная CMS в мире, и именно поэтому вопрос о правильной версии PHP и... Где сейчас захостить видео, чтобы его просто вставлять на свой сайт без рекламы? Лучшие альтернативы YouTube В 2025 году все чаще сталкиваемся с ситуацией: YouTube работает с перебоями, вставки грузятся...
« Back

Powered by WHMCompleteSolution


Knowledgebase