Ты сидишь за сервером, в консоли, и нужно найти тот чертов файл. Или кучку файлов. Или наоборот — удалить все говно, которое засрало диски. Вот тут на помощь приходит команда find. Если ты ещё не юзал её по-настоящему, ты просто тратишь время и пальцы.
find — не просто команда, это швейцарский нож в руках того, кто понимает, как копать глубже в файловой системе. Да, есть GUI и всякие ребята с милыми интерфейсами, но мы-то с тобой не про цветочки, а про результат. Ты хочешь искать, фильтровать, удалять, менять права — и делать это быстро, без цирка.
Что такое find и почему он такой крутой
Короче, find — это твой штурмовой отряд по поиску в каталоге и подкаталогах. Хочешь — ищи файлы по имени, по типу, по размеру, по дате, по владельцу, по разрешениям — всем, чем хочешь. А хочешь — делай с найденным файлом что угодно: удаляй, меняй владельца, запускай скрипты.
Команда примерно такая:
find [параметры] [путь для поиска] [условия] [действия]
Пример — ищем все .js файлы в /var/www и лезем по ссылкам:
find -L /var/www -name "*.js" Флаг -L — заставляет find следовать символическим ссылкам. Без него ты можешь пропустить кучу нужного мусора.
Поиск по имени — классика жанра
Чтобы найти конкретный файл, не мудрствуя лукаво:
find /home/www-php -type f -name file.docx
Если хочешь забить на регистр, используй -iname. Вот пример:
find /home/www-php -type f -iname file.docx
Поиск по расширению — когда тебе нужны все логи, а не эти дурацкие tmp-файлы
Найти все .log.gz в /var/log/nginx:
find /var/log/nginx -type f -name '*.log.gz' Если не хочешь эти .log.gz, а хочешь все остальное — добавь -not:
find /var/log/nginx -type f -not -name '*.log.gz' Кавычки обязательны, иначе shell съест звездочку раньше, чем find увидит.
По типу файлов — обычные файлы, каталоги, ссылки, устройства
В Linux всё — файл, но разного типа. Вот какие типы тебе пригодятся:
f— обычный файлd— каталогl— символическая ссылкаc,b— устройства (char/block)p— FIFOs— сокет
Например, чтобы найти все каталоги в текущей папке:
find . -type d
Вот классика для веб-сайта — меняем права:
find /var/www-php -type d -exec chmod 0755 {} \;
find /var/www-php -type f -exec chmod 0644 {} \;
По размеру — если надо найти файлы весом от и до
Размер можно указывать с суффиксами: c — байты, k — килобайты, M — мегабайты, G — гигабайты.
Найти файлы ровно в 1024 байта в /tmp:
find /tmp -type f -size 1024c
Меньше 1MB:
find . -type f -size -1M
Больше 1MB:
find . -type f -size +1M
Диапазон между 1 и 2 мегабайтами — тупо и эффективно:
find . -type f -size +1M -size -2M
По дате — будь то последняя модификация или доступ
Варианты простые:
-mtime N— файл изменён ровно N дней назад-mtime +N— больше N дней назад-mtime -N— меньше N дней назад
Пример: найти конфиги в /etc/dovecot/conf.d, изменённые 5 дней назад:
find /etc/dovecot/conf.d -name "*.conf" -mtime 5
Или найти файлы, старше 30 дней:
find /home -mtime +30 -daystart
По разрешениям — кто может читать, писать, выполнять
Флаг -perm помогает искать файлы по точным или частичным правам.
Например, все файлы с правами 644 в /var/www/html:
find /var/www/html -perm 644
Или все файлы с любым правом на чтение у кого угодно:
find . -perm /444
Требуем, чтобы владелец и группа имели чтение и запись, остальные — только чтение:
find . -perm -664
По владельцу и группе
Чтобы найти всё, что принадлежит юзеру www-php:
find / -user www-php
Если нужно сменить владельца файлов от www-data на nginx:
find / -user www-data -type f -exec chown nginx {} \;
И удаление — как не лажануться
Удалить все .temp файлы из /var/log можно так:
find /var/log/ -name '*.temp' -delete
Но тут не шутки — сначала убедись, что ты не собираешься сжечь свой сервер дотла. Лучше сначала выведи список:
find /var/log/ -name '*.temp' И только если уверен — добавляй -delete. Не тупи.
Итог
find — это не просто команда, а твоя палка-выручалка. Если ты хочешь понять, где твой файл, кто его сменил, сколько он весит, и даже тихо избавиться от ненужного хлама — учись не просто запускать find, а заставлять её работать за тебя.
И да, никаких тебе графических приблуд — когда ты в Linux, то ты в окопе, а не в уютном офисе с кофе и скроллом мышки.
0 комментариев