Команда find — один из самых мощных инструментов Linux. Она умеет искать файлы по имени, размеру, дате, правам, владельцу и даже выполнять действия с найденным. Освоив её, вы забудете про поиск в проводнике.
1️⃣Синтаксис, который нужно запомнить
find <где искать> <что искать> <что сделать>
Например:
find /home -name "*.txt"
Ищет все .txt файлы в /home.
2️⃣Поиск по имени
find . -name "report.txt" # точное имя
find . -iname "report.txt" # без учёта регистра
find . -name "*.log" # все .log файлы
find . -name "file?.txt" # ? — один любой символ
💡Шаблон всегда берите в кавычки — иначе оболочка сама попытается его развернуть.
3️⃣Поиск по типу
find . -type f # только файлы
find . -type d # только директории
find . -type l # только символические ссылки
4️⃣Поиск по размеру
find . -size +100M # больше 100 МБ
find . -size -1k # меньше 1 КБ
find . -size 0 # пустые файлы
Единицы:
c
— байты,
k
— килобайты,
M
— мегабайты,
G
— гигабайты.
5️⃣Поиск по времени
find . -mtime -7 # изменены за последние 7 дней
find . -mtime +30 # изменены более 30 дней назад
find . -mmin -60 # изменены за последний час
find . -newer file.txt # новее, чем file.txt
6️⃣Поиск по владельцу и правам
find . -user devops_user # принадлежат пользователю
find . -group sudo # принадлежат группе
find . -perm 644 # точные права
find . -perm /u+w # доступны на запись владельцу
7️⃣Выполнить действие с найденным
find . -name "*.tmp" -delete # удалить
find . -name "*.log" -exec gzip {} \; # сжать каждый
find . -name "*.sh" -exec chmod +x {} \; # сделать исполняемым
⭐️Полезные приёмы
find . -name "*.txt" 2>/dev/null # скрыть ошибки доступа
find . -type f -exec du -h {} + | sort -h # отсортировать по размеру
#linux #sysadmin #find
