Подтвердить что ты не робот

Использование find для удаления всех подкаталогов (и их файлов)

Я уверен, что это прямолинейно, и я ответил где-то, но мне не удалось найти то, что я искал. В основном, я пытаюсь запустить cron script, чтобы очистить содержимое данного каталога каждые 7 дней. До сих пор я пробовал следующее:

find /myDir -mtime 7 -exec rm -rf {} \;

Это также удаляет родительский каталог myDir, который мне не нужен. Я также пробовал,

find /myDir -type f -type d -mtime 7 -delete

который, казалось, ничего не делал. Я также пробовал,

fnd /myDir -type d -delete

который удалил все, кроме родительского каталога, как мне нужно. Однако появилось предупреждающее сообщение,

относительный путь потенциально небезопасный

Я был бы признателен, если кто-нибудь сможет исправить мой script, чтобы он безопасно удалял все подкаталоги в папке.

Большое спасибо. =)

ОБНОВЛЕНИЕ: Я решил пойти на следующее,

find /myDir -mindepth 1 -mtime 7 -delete

Основываясь на том, что я узнал от всех, кто ответил. Еще раз большое спасибо всем вам.

4b9b3361

Ответ 1

Try:

find /myDir -mindepth 1 -mtime 7 -exec rm -rf {} \;

Ответ 2

Что насчет

cd myDir/ ; find . -type d -delete

предполагая, что вы запускаете это из родительского каталога myDir.

Если вы не можете гарантировать, что myDir существует, тогда это безопаснее:

cd myDir/ && find . -type d -delete

Ответ 3

find /myDir -mindepth 1 -mtime 7 -delete

должен быть

find /myDir -mindepth 1 -mtime +7 -delete

(или, может быть, mtime +6). + означает 7 дней или старше, а не ровно 7 дней.