删除超过 5 天的文件以及所有子文件夹

删除超过 5 天的文件以及所有子文件夹

我需要删除所有子文件夹中超过 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 fwhich 指示find仅查看文件,而-deletewhich 则删除它们。这比rm为每个结果调用单独的方法更有效。

答案2

您还可以使用

find /path/to -type f -mtime 5+ -exec rm {} \;

相关内容