我需要一个命令来删除所有更新时间不超过31天的文件,文件夹和子文件夹。我尝试了这个
find . -mindepth 1 -mtime +31 -exec rm -rf "{}" \;
但是如果我有这样的等级制度
.
├── old_sub_folder1
└── old_sub_folder2
├── old_file
└── old_sub_folder3
└── new_file
old_*
旧文件夹\文件在哪里,new_file
是新文件。
此命令将删除所有内容。因为创建old_sub_folder2
后日期未更新new_file
。
我需要一个不会删除old_sub_folder2 / old_sub_folder3 / new_file的命令
问题是您将-r
选项添加到了rm
命令中。即使文件夹不为空,这也会删除这些文件夹。
您需要分两步执行此操作:
只删除旧文件:
find . -type f -mtime +31 -delete
要删除所有旧文件夹,如果它们是空的,我们可以在这里进行窥视,并对其进行一些调整:
find . -type d -empty -mtime +31 -delete
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句