我有一个命令,用于查找和删除目录中超过指定时间的文件。该命令是:
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