我的備份存儲在文件夾中。例如刪除所有比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