我需要删除所有子文件夹中超过 5 天的所有文件,但不删除文件夹本身。我知道命令:
find /path/to/files* -mtime +5 -exec rm {} \;
但是我如何告诉 Ubuntu 检查所有子文件夹,但绝不删除文件夹本身。我是否需要 -maxdepth 5?
谢谢。
答案1
首先,不要给find
(no files*
) 一个 glob,只需给它父目录 ( /path/to/
)。它将处理递归并查找所有文件。接下来,rm
永远不会删除目录,因此您也不必担心这一点。不过,最简单的方法是:
find /path/to/ -type f -mtime +5 -delete
请注意,-type f
which 指示find
仅查看文件,而-delete
which 则删除它们。这比rm
为每个结果调用单独的方法更有效。
答案2
您还可以使用
find /path/to -type f -mtime 5+ -exec rm {} \;