2013-09-05 87 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

相關問題