Темы
Некоторые примеры использования утилиты Find
Если в текущей директории есть скрытые каталоги, то вывод команд будет различаться. Первая будет искать везде, а вторая - проигнорирует скрытые папки на текущем уровне:
Код: Выделить всё
find .
find *- Поиск по части имени
Код: Выделить всё
find ~/ -name dead* или find ~/ -name *dead* - Замена слов в скриптах
Код: Выделить всё
find -name '*.php' -exec sed -i -e s/было/стало/g {} \; - Найти и удалить все временные файлы
Код: Выделить всё
find ./ -name '*~' -delete - Сохранить все *.xml вместе с деревом каталогов в архиве.
Код: Выделить всё
find ./dir -name "*.xml" -print | zip archive -@ - Установка прав доступа на каталоги
Код: Выделить всё
find -type d -print0 | xargs -0 chmod 750 - Установка прав доступа на файлы
Код: Выделить всё
find -type f -print0 | xargs -0 chmod 640 - найти и удалить все не рабочие ссылки в указанном каталоге
Код: Выделить всё
find /etc/ -xtype l -delete - Найти файлы, которые не являются видимыми для всех
Код: Выделить всё
find -type f ! -perm -444 - Найти директории не доступные для всех
Код: Выделить всё
find -type d ! -perm -111 - Искать файлы определённого пользователя
Код: Выделить всё
find . -user apache - Показать файлы которые менялись за последние 10 дней
Код: Выделить всё
find /usr/bin -type f -mtime -10 - Найти все файлы, чьё имя состоит лишь из символов
Код: Выделить всё
find * -type f -name '[0-9]*' - Найти все скрытые файлы
Код: Выделить всё
find . -type f -iname ".*" - Удалить все пустые директории
Код: Выделить всё
find -depth -type d -empty -print0 | xargs -0 rmdir - Вывести только файлы из текущего каталога
Код: Выделить всё
find * -maxdepth 0 -type f - Ищем файлы которые изменялись в определённом диапазоне времени
Код: Выделить всё
touch -t yyyymmddHHMM range_start touch -t yyyymmddHHMM range_end find . -type f -newer range_start ! -newer range_end -ls - Найти символьные ссылки
Код: Выделить всё
find ~/ -type l // можно сразу посмотреть куда они ведут: find ~/ -type l -exec ls -l {} \; - Найти файлы по определенной маске, содержащие определенный текст. Отображает имя файла, номер строки где найден текст, и саму строку. Все это красиво раскрашивает (если консоль позволяет раскраску)
Код: Выделить всё
$ find . -name "*.php" | while read i; do cat "$i" | grep -H --label="$i" -n "print_r"; done - Найти файлы *.php и проверить их лексическим анализатором
Код: Выделить всё
find . -name "*.php" | while read i; do php -l $i; done