⌨️Команда find
Основной синтаксис команды
find [папка][параметры]критерий шаблон[действие]
Параметры
-P
Никогда не открывать символические ссылки
-L
Получает информацию о файлах по символическим ссылкам. Важно для дальнейшей обработки, чтобы обрабатывалась не ссылка, а сам файл.
-maxdepth
Максимальная глубина поиска по подкаталогам, для поиска только в текущем каталоге установите 1
-depth
Искать сначала в текущем каталоге, а потом в подкаталогах
-mount
Искать файлы только в этой файловой системе
-version
Показать версию утилиты find
Выводить полные имена файлов
-type f
Искать только файлы
-type d
Поиск папки в Linux
-type l
Искать симлинки
Критерии
-name
Поиск файлов по имени
-perm
Поиск файлов в Linux по режиму доступа
-user
Поиск файлов по владельцу
-group
Поиск по группе
-mtime
Поиск по времени модификации файла
-atime
Поиск файлов по дате последнего чтения
-nogroup
Поиск файлов, не принадлежащих ни одной группе
-nouser
Поиск файлов без владельцев
-newer
Найти файлы новее чем указанный
-size
Поиск файлов в Linux по их размеру
Эта команда найдёт как php, так и html файлы:
find -name "*.html" -o -name "*.php"
Найти файлы с определенной маской прав, например, 0664:
find . -type f -perm 0664
Найти только исполняемые файлы:
find /bin -maxdepth 2 -perm /a=x
Найти все файлы размером 50 мегабайт:
find / -size 50M
От пятидесяти до ста мегабайт:
find / -size +50M -size -100M
Поиск пустых файлов и папок:
find /tmp -type f -empty
find ~/ -type d -empty
Для выполнения произвольных команд для найденных файлов используется опция -exec. Например, для того чтобы найти все пустые папки и файлы, а затем выполнить ls для получения подробной информации о каждом файле используйте:
find . -empty -exec ls -ld {} \;
Удалить все текстовые файлы в tmp
find /tmp -type f -name "*.txt" -exec rm -f {} \;
Удалить все файлы больше 100 мегабайт:
find /home/bob/dir -type f -name *.log -size +100M -exec rm -f {} \;
Last updated