2013-09-05 53 views
2

我的备份存储在文件夹中。例如删除所有比X天更早的文件夹(SHELL)

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

等等。

现在我想要删除所有比X Days更早的文件夹。

我想这

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

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

有人可以帮我吗?

提前cSGermany

回答

4

使用-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 
+0

我不确切知道我在做什么;)这对我来说很新。但是不可能删除不在FILEDIR目录中的文件?! – invictus

+0

so:find $ FILEDIR -type d -mtime +14 -exec rm -r {} \;应该管用? – invictus

+0

@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

1
  • 找到目录,你可以添加find $FILEDIR -type d ...可能避免删除文件(例如,在您给定的根目录下的文件)。
  • 要删除非空目录,您需要rm -r,所以-r选项在这里很重要。
+0

它的作品,但也删除主文件夹“备份”。我如何防止它删除此文件夹? – invictus

+0

看来konsolebox的答案已经解决了你的问题? @cSGermany – Kent

+0

展位答案解决了它!谢谢你。但问题是它也会删除主文件夹。 – invictus

相关问题