Find: Сборник примеров.

Установка, настройка, эксплуатация.
Ответить
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Find: Сборник примеров.

Сообщение root »

Оглавление
Темы
Некоторые примеры использования утилиты Find
Если в текущей директории есть скрытые каталоги, то вывод команд будет различаться. Первая будет искать везде, а вторая - проигнорирует скрытые папки на текущем уровне:

Код: Выделить всё

find .
find *
  1. Поиск по части имени

    Код: Выделить всё

    find ~/ -name dead*
    или
    find ~/ -name *dead*
  2. Замена слов в скриптах

    Код: Выделить всё

    find -name '*.php' -exec sed -i -e s/было/стало/g {} \;
  3. Найти и удалить все временные файлы

    Код: Выделить всё

    find ./ -name '*~' -delete
  4. Сохранить все *.xml вместе с деревом каталогов в архиве.

    Код: Выделить всё

    find ./dir -name "*.xml" -print | zip archive -@
  5. Установка прав доступа на каталоги

    Код: Выделить всё

    find -type d -print0 | xargs -0 chmod 750
  6. Установка прав доступа на файлы

    Код: Выделить всё

    find -type f -print0 | xargs -0 chmod 640
  7. найти и удалить все не рабочие ссылки в указанном каталоге

    Код: Выделить всё

    find /etc/ -xtype l -delete
  8. Найти файлы, которые не являются видимыми для всех

    Код: Выделить всё

    find -type f ! -perm -444
  9. Найти директории не доступные для всех

    Код: Выделить всё

    find -type d ! -perm -111
  10. Искать файлы определённого пользователя

    Код: Выделить всё

    find . -user apache
  11. Показать файлы которые менялись за последние 10 дней

    Код: Выделить всё

    find /usr/bin -type f -mtime -10
  12. Найти все файлы, чьё имя состоит лишь из символов

    Код: Выделить всё

    find * -type f -name '[0-9]*'
  13. Найти все скрытые файлы

    Код: Выделить всё

    find . -type f -iname ".*" 
  14. Удалить все пустые директории

    Код: Выделить всё

    find -depth -type d -empty -print0 | xargs -0 rmdir
  15. Вывести только файлы из текущего каталога

    Код: Выделить всё

    find * -maxdepth 0 -type f
  16. Ищем файлы которые изменялись в определённом диапазоне времени

    Код: Выделить всё

    touch -t yyyymmddHHMM range_start
    touch -t yyyymmddHHMM range_end
    find . -type f -newer range_start ! -newer range_end -ls
  17. Найти символьные ссылки

    Код: Выделить всё

    find ~/ -type l 
    // можно сразу посмотреть куда они ведут:
    find ~/ -type l -exec ls -l {} \;
  18. Найти файлы по определенной маске, содержащие определенный текст. Отображает имя файла, номер строки где найден текст, и саму строку. Все это красиво раскрашивает (если консоль позволяет раскраску)

    Код: Выделить всё

    $ find . -name "*.php" | while read i; do cat "$i" | grep -H --label="$i" -n "print_r"; done
  19. Найти файлы *.php и проверить их лексическим анализатором

    Код: Выделить всё

    find . -name "*.php" | while read i; do php -l $i; done
Ответить