我的备份存储在文件夹中。例如删除所有比X天更早的文件夹(SHELL)
**05092013** >
- File1.sql
- File2.sql
- File1.tar
- File2.tar
等等。
现在我想要删除所有比X Days更早的文件夹。
我想这
find $FILEDIR -mtime +14 -exec rm {} \;
但它只是删除所有文件,而不是文件夹。我如何删除所有较旧的文件和文件夹?
有人可以帮我吗?
提前cSGermany
我的备份存储在文件夹中。例如删除所有比X天更早的文件夹(SHELL)
**05092013** >
- File1.sql
- File2.sql
- File1.tar
- File2.tar
等等。
现在我想要删除所有比X Days更早的文件夹。
我想这
find $FILEDIR -mtime +14 -exec rm {} \;
但它只是删除所有文件,而不是文件夹。我如何删除所有较旧的文件和文件夹?
有人可以帮我吗?
提前cSGermany
使用-r
THX?
find "$FILEDIR" -mtime +14 -exec rm -ir {} \;
变化-ir
只是-r
如果你知道自己在做什么。
或者使用-delete
:
find "$FILEDIR" -mtime +14 -delete
但请,请确保你知道自己在做什么。
您可以添加检查,这样也确保$ FILEDIR总是有某个地方你的主目录:
[[ $FILEDIR == /home/abc/* ]] && find "$FILEDIR" -mtime +14 -delete
我不确切知道我在做什么;)这对我来说很新。但是不可能删除不在FILEDIR目录中的文件?! – invictus
so:find $ FILEDIR -type d -mtime +14 -exec rm -r {} \;应该管用? – invictus
@cSGermany添加'-mindepth 1':'[[$ FILEDIR ==/home/abc/*]] && find“$ FILEDIR”-mindepth 1 -mtime +14 -delete'。另一个不使用'[[]]'来添加检查的选项是使用'-wholename':'find“$ FILEDIR”-mindepth 1 -wholename'/ home/abc/*'-mtime +14 -delete'。 – konsolebox