2

我的备份存储在文件夹中。例如

 **05092013** > 
 - File1.sql
 - File2.sql
 - File1.tar
 - File2.tar

等等。

现在我想删除所有早于 X 天的文件夹。

我试过这个

find $FILEDIR -mtime +14 -exec rm {} \;

但它只删除所有文件而不是文件夹。如何删除所有较旧的文件和文件夹?

有人能帮我吗?

提前谢谢 cS德国

4

2 回答 2

4

使用-r

find "$FILEDIR" -mtime +14 -exec rm -ir {} \;

-ir只要-r你知道你在做什么,就改变。

或使用-delete

find "$FILEDIR" -mtime +14 -delete

但是,请确保您知道自己在做什么。

您也可以添加这样的检查以确保 $FILEDIR 始终位于您的主目录中:

[[ $FILEDIR == /home/abc/* ]] && find "$FILEDIR" -mtime +14 -delete
于 2013-09-05T12:44:17.450 回答
1
  • 查找目录,您可以添加find $FILEDIR -type d ...它可以避免错误地删除文件(例如,给定根目录下的文件)。
  • 要删除非空目录,您需要rm -r,因此-r选项在这里很重要。
于 2013-09-05T12:49:54.390 回答