2017-04-04 144 views
2

我有這個獨特的要求,找到2年前的舊文件並刪除它們。但不僅僅是文件以及相應的空目錄。我已經寫了大部分邏輯,但是隻有當我從目錄中刪除特定文件時,如何刪除相應的目錄。當我刪除特定的文件時,ctime/mtime也會相應地得到更新。我如何定位那些相應的舊目錄並刪除它們? 任何指針都會有幫助。 在此先感謝。bash刪除舊文件

  • 聯繫
+0

您能向我們展示迄今爲止的代碼嗎? 'rm -r mydir'刪除目錄和內容 –

回答

3

我會做這樣的事情:

find /path/to/files* -mtime +730 -delete 

-mtime +730認爲這是年齡超過730天文件。

請注意這種命令雖然,請務必事先寫入find /path/to/files* -mtime +730並檢查這些是您要刪除的文件!

編輯: 現在你已經從目錄中刪除文件,-mtime +730將無法​​正常工作。 要刪除您最近更改過的所有空目錄:

find . -type d -mmin -60 -empty -delete 
+0

感謝您的回覆。是的,這是有道理的,就像之前提到的,我到目前爲止。仍然未決的部分是,如何在刪除內部較舊的文件後,如何定位(刪除)將爲空的目錄。 –

+0

當然,所以你想刪除現在空的目錄,檢查我的編輯@SachinH –

+0

對不起,但你又錯過了點。一旦刪除舊文件,相應的空目錄將不再是舊的,即將修改mtime和ctime。 –