Find. Примеры использования.

Очень часто на хостинге приходится прибегать к массовой работе с файлами — поиск и удаление, корректировка прав, корректировка владельца, поиск файлов нужного размера и работа с ними. В таких случаях всегда выручает find, с его помощью такие операции автоматизируются и выполняются легко. В заметке несколько примеров применения find при работе с большим количеством файлов и директорий:

Изменить права на файлы и директории:

find ./dir/ -type d -exec chmod 0755 {} \;
find ./dir/ -type f -exec chmod 0644 {} \;

Найти все файлы с правами отличными от 644, директории с правами отличными от 755 и дать им эти права:

find ./dir/ -type f ! -perm 644 -print -exec chmod 0644 {} \;
find ./dir/ -type d ! -perm 755 -print -exec chmod 0755 {} \;

Удалить все .php файлы в указанной, и вложенных в неё директориях:

find ./dir/ -type f -name "*.php" -exec rm -f {} \;

Найти все .c, .sh, .py файлы:

find ./dir/ -type f \( -name "*.c" -o -name "*.sh" -o -name "*.py" \)

Найти все php скрипты, в которых встречается вхождение «base64»:

find ./dir/ -type f -name "*.php" -exec grep -l base64 {} \;

Найти пустые файлы и директории:

find ./dir/ -type f -empty
find ./dir/ -type d -empty

Найти все файлы пользователя petya и сменить их владельца на пользователя vasya:

find ./dir/ -type f -user petya -exec chown vasya {} \;

Найти все файлы пользователя petya, модифицированные в последний час:

find ./dir/ -type f -user petya -mmin -60

Найти все .mov файлы пользователя vasya размером более 1Гб и перенести их в директорию /storage

find ./dir/ -type f -user vasya -name "*.mov" -size +1G -exec mv {} /storage \;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *