我想知道如何自动删除某个文件夹中的旧文件,但我希望它排除其子文件夹。我知道如何自动执行该过程,也知道如何删除包括子文件夹在内的旧文件:
find /path/to/files -mtime +30 -exec rm {} \;
为了实现自动化,我只需让它在启动时打开一次。
答案1
-maxdepth levels
下降到命令行参数之下最多levels
(非负整数)个目录级别。-maxdepth 0
意味着仅将测试和操作应用于命令行参数。
find /path/to/dir1 /path/to/dir2 /foo/bar/fileA -maxdepth 1 -type f -mtime +30 -exec rm {} +
笔记:
- Sole
rm
适用于文件,而不是目录,并且您只想删除文件,因此-type f
。 -exec rm {} \;
被取代-exec rm {} +
。考虑-delete
(见我的这个答案)。- 如果你
find
不支持-maxdepth
,那么看看如何限制 POSIXfind
到特定深度。