我知道find -mtime +x -delete
,但如何使用它 - 或在脚本中使用它 - 以便删除所有“旧内容”(包括隐藏文件)?例如,如果我有一个目录target_dir
:
- 删除
target_dir
任何深层内容在 X 天内未发生更改的所有文件夹和子文件夹(即删除旧目录树分支) target_dir
删除X 天内未更改的所有文件
编辑: 相关这个话题但接受的答案并没有真正起作用,因为通过首先删除文件,我们“更新”旧目录的修改日期,以便它们不会在第二步中删除......也不确定可能的隐藏文件/目录。 。
答案1
经过多次测试,我发现最简单的方法就是简单地使用:
find /path/to/dir -mtime +30 -delete
这些删除了除具有更新内容的分支之外的所有内容。
但请注意,同时: (a) 这是行不通的:find /path/to/dir/* -mtime +30 -delete
; (b) 如果/path/to/dir
仅包含旧内容并且尚未自行更新,则它将自行删除。
因此,我想保留该目录的方法是运行第一个find
命令,然后检查该目录是否仍然存在,如果不存在,我重新创建它。