查找并删除超过时间的目录?

查找并删除超过时间的目录?

我有一个命令,用于查找和删除目录中超过指定时间的文件。该命令是:

sudo find /path/to/dir/* -daystart -mtime +7 -delete

我如何修改此命令以删除指定目录内的目录和文件。

答案1

您可能不想根据修改时间删除目录。您可能想做的是,一旦目录中没有文件,就删除该目录。
解决此问题的一种方法是:

find /path/to/dir -type d -empty -exec rmdir {} \;

如果您有经常使用但有时为空的目录,则可以将命令更改为

find /path/to/dir -type d -empty -daystart -mtime +7 -exec rmdir {} \;

仅当目录不符合修改时间标准并且为空时,才会删除目录。

答案2

这是我运行的删除文件的命令:

find /path/to/files* -mtime +1 -exec rm {} \;

以下内容未经测试,但我确信您可以通过执行类似递归删除的操作来修改它以删除目录:

find /path/to/dir -mtime +1 -exec rm -rf {} \;

答案3

find $DNLD_DIR/* -mtime +7 -type d -print0 | xargs -0 rm -rf

删除目录而不检查是否为空。我使用它来删除我创建的目录,目录名为 yyyymmdd,我知道我希望清除其中的所有内容,包括目录。

不过,使用这个功能时一定要小心。如果条件不对,跑步时find | xargs rm -rf你可能会毁了你的一天。find

相关内容