У меня есть каталог db-cache-db, и он находится в каталоге /home /{USER} /public_html. Я знаю, что есть способ написать сценарий для этого, но я не уверен, где и как начать.

Я попробовал следующее, но не повезло

find /home -wholename 'db-cache-db' -exec echo "rm -rf" {} ';'

Нужно ли использовать -type и -name?

2 ответа2

3

-wholename совпадает с -path и соответствует полному пути каталога, например /home/{USER}/public_html/db-cache-db , а не только имени, например db-cache-db . Поскольку вы не используете подстановочный аргумент (например, */db-cache-db), вы никогда ничего не найдете.

Сначала попробуйте выполнить следующее, чтобы убедиться, что вы случайно не удалите больше, чем планировали:

find /home -name 'db-cache-db' -type d

Если это приводит к каталогам, которые вы хотите удалить, добавьте последний аргумент, который фактически удалил:

find /home -name 'db-cache-db' -type d -exec rm -rfv {} \;
2

Это небезопасно:

find /home -name 'db-cache-db' -type d -exec echo rm -rf {} ';'

Вы можете потерять много каталогов, которые хотите сохранить.

find /home -name 'db-cache-db' -exec echo "rm -rf" {} ';' > /home/tmp.shl

Далее прочитайте, что находится в tmp.shl, убедитесь , что все безопасно. Выполните скрипт, который вы "написали" с помощью команды find.

chmod +x /home/tmp.shl 
/home/tmp.shl

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .