2017-01-03 4 views
0

Я пытаюсь перечислить каталоги (но не файлы) старше x дней. Для этого я использовал команду ниже. Но это список каталогов и файлов. Может ли кто-нибудь помочь мне в разрешении? Благодарю.Удалить только Каталоги (не файлы) старше x дней в Linux

find /path/to/base/dir/* -type d -ctime +10 -exec ls {} \; 
+0

это список каталогов и файлов, потому что вы говорите 'ls {}' к результатам. Вместо этого используйте 'ls -d {}' для отображения самой директории. – fedorqui

+0

GNU 'find' имеет действие' -ls', которое ведет себя как 'ls -dils' для поиска' find'. –

+0

Если вы хотите, чтобы результат, например 'ls -d', показывал его, вы можете удалить действие, которое по умолчанию имеет значение' -print' и такое же, как '-exec ls -d {} \;' –

ответ

0

Попробуйте

find /path/to/base/dir -maxdepth 1 -type d -ctime +10 -exec rm -r {} \; 
0

Во-первых, чтобы проверить, если все в порядке:

find /path/to/base/dir -type d -ctime +10 -exec ls -d {} \; 

Когда все в порядке:

find /path/to/base/dir -type d -ctime +10 -exec rm -fr {} \; 

Пояснения:

ls -d : list directories themselves, not their contents 
rm -f : ignore nonexistent files and arguments, never prompt