PALMisLIFE 討論區

標題: UNIX 下刪除某一日期前的檔案 [列印本頁]

作者: Jerry    時間: 2006-8-4 15:58
標題: UNIX 下刪除某一日期前的檔案
對unix下指令的熟悉度還是不夠,想請教一下如何指定某一日期前的檔案要全刪除。
除了使用find 外,還有其它方法嗎。
謝謝
作者: allenown    時間: 2006-8-4 16:44
標題: Re: UNIX 下刪除某一日期前的檔案
其實用 find 就可以滿足了
你可以找某個是在那個日期的檔案
然後下參數

find ./ \! -newer filename
有加上 \! -newer 就代表是「不」比 filename 這個檔案新的檔案
也就是搜尋比這個檔案舊的檔案

如果找到的結果是正確的
就可以直接用下列命令直接刪除檔案

find ./ \! -newer filename -exec rm {} \;

如果想要每個檔案都 check 是否要刪除的話

可以改下 find ./ \! -newer filename -ok rm {} \;

當然如果更方便一點,
可以直接用 -ctime 來搜尋多久時間之內有被改變或是沒有被改變的檔案

find . -ctime -1w2d3h4m5s
就會找尋在一週兩天三小時四分鐘五秒之內有修改過的檔案 XD

如果是 +1w2d3h4m5s 的話就是沒有修改過的檔案

希望對你有幫助
作者: MelancholyLee    時間: 2006-8-4 17:07
標題: Re: UNIX 下刪除某一日期前的檔案
可以寫個小程式..判斷檔案的產生時間再進行刪除.. (Java in a nutshell 有類似的範例..拿來改一下應該就可以用了)
不然的話 用shell script 來做是比較快的..
find + xargs + regular expression 可依自己的需求組合一下..
細節可以用 man find  來找到一些說明
作者: Jerry    時間: 2006-8-7 09:22
標題: Re: UNIX 下刪除某一日期前的檔案
謝謝二位。
用find 的命令加上atime 解決了。




歡迎光臨 PALMisLIFE 討論區 (http://f.pil.tw/) Powered by Discuz! X2.5