以特定時間點為基準刪除老舊目錄
今天因為某些原因,得刪除特定目錄底下,太老舊的一些目錄。目錄數量有上百個,一個個刪實在令人難過,身為一個 Linux user,就該善用工具來解決這個問題!
這篇是個簡單的速記,就不囉唆。只要使用以下指令即可:
$ find * -maxdepth 0 -mtime +365 -exec rm -r {} \;
其中幾個重點說明如下:
- 使用
find
可以找出符合特定條件的檔案並對該檔案做點事情(下指令) -maxdepth
是用來限制 find 往下搜尋的層數,由於我僅針對此目錄下的所有目錄做處理,故僅使用find * -maxdepth 0
-mtime
是針對 modified time 做限制,後面接+n
表示「早於 n 天前修改的檔案(比 n 天還舊)」,若是接上-n
則表示「晚於 n 天前修改的檔案(比 n 天還新)」。類似的選項還有atime
,amin
,ctime
,cmin
,mmin
。可自行查看 manpage。值得注意的是,manpage 中是以「n*24 hours」來說明,不曉得是否有何特殊之處?-exec
則是針對找到的檔案進行動作,後面接上要執行的指令,並以{}
代表找到的檔案,結尾並加上\;
即可。
網路上找到的通常會是刪除「老舊檔案」而非目錄,以下亦附上參考用法。
$ find . -mtime +365 -exec rm {} \;
祝各位刪檔愉快(笑)。
Last modified on 2012-01-09