我的备份存储在文件夹中。例如
**05092013** >
- File1.sql
- File2.sql
- File1.tar
- File2.tar
等等。
现在我要删除所有超过X天的文件夹。
我试过这个
find $FILEDIR -mtime +14 -exec rm {} \;
但它只删除所有文件而不删除文件夹。如何删除较旧的所有文件和文件夹?
有人可以帮助我吗?
提前thc cSGermany
答案 0 :(得分: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
答案 1 :(得分:1)
find $FILEDIR -type d ...
,以避免错误地删除文件(例如您指定的根目录下的文件)。rm -r
,因此此处-r
选项非常重要。