Использование find для удаления всех подкаталогов (и их файлов)
Я уверен, что это прямо вперед и ответил где-то, но мне не удалось найти то, что я искал. В принципе, я пытаюсь запустить сценарий cron, чтобы очистить содержимое данного каталога каждые 7 дней. До сих пор я пробовал следующие,
find /myDir -mtime 7 -exec rm -rf {} ;
это, однако, также удаляет родительский каталог myDir, который я не хочу. Я тоже пытался,
find /myDir -type f -type d -mtime 7 -delete
, который, казалось, ничего не делать. Я тоже пытался,
fnd /myDir -type d -delete
который удалил все, кроме родительский каталог, как мне нужно. Однако появилось предупреждающее сообщение:
относительный путь потенциально небезопасен
Я был бы признателен, если кто-нибудь может исправить мой скрипт, чтобы он безопасно удалял все подкаталоги в папке.
большое спасибо. =)
обновление: я решил пойти на следующее,
find /myDir -mindepth 1 -mtime 7 -delete
основываясь на том, что я узнал от всех, кто ответил. Еще раз большое спасибо вам все.
3 ответов
find /myDir -mindepth 1 -mtime 7 -delete
, вероятно, должен быть
find /myDir -mindepth 1 -mtime +7 -delete
(или mtime +6
). The +
означает вещи 7 дней или старше, а не ровно 7 дней.
насчет
cd myDir/ ; find . -type d -delete
предполагая, что вы запустите это из myDir
родительский каталог.
Если вы не можете гарантировать, что myDir существует, то это безопаснее:
cd myDir/ && find . -type d -delete