要刪除系統中就的備份檔案,就需要使用命令了: #find /tmp -mtime +30 -type f -name *.sh[ab] -exec rm -f {} \; 假如在一個目錄中保留最近30天的檔案,30天前的檔案自動刪除 #find /tmp -mtime +30 -type f -name *.sh[ab] -exec rm -f {} \; /tmp --設定尋找的目錄; -mtime +30 --設定時間為30天前; -type f --設定尋找的類型為檔案; -name *.sh[ab] --設定檔案名稱中包含sha或者shb; -exec rm -f --尋找完畢後執行刪除操作; 提示:將此命令寫入crontab後即可自動完成尋找並刪除的工作 另外的方法大同小異 #find . -mtime +30 -type f | xargs rm -rf www.2cto.com 我的操作是:先ls -ltr 查看時間,沒有太久的所以就用 -cmin n尋找系統中最後N分鐘被改變檔案狀態的檔案。具體命令:$ find /home/oracle/test6 -cmin +20 -type f -name *.xml -exec rm -f { } \; 另外的方法大同小異#find . -mtime +30 -type f | xargs rm -rf $find . -type f -cmin +10 -exec rm -rf *.xml {} \; find . type f -name "debug*" -atime +3 -exec rm -f {} \; 首先cd進入目錄: find . -name "*~" -exec rm {} \; find . -ctime +n -exec -exec rm -vi {} \; 這裡的+n是指多少天以前,比如:+7 find . -ctime +7 -exec -exec rm -vi {} \; 如果不想手動確認,把命令中的-vi改成-fv 請詳查find命令. 使用find時要區分清楚atime,ctime,mtime的區別,一般都使用mtime來尋找,因為在ls -al顯示出來的就是mtime時間戳記,可以使用: # find $PAHT -mtime +3 -ok rm {} \; 在互動模式下刪除比較保險。 一、按照一定日期格式命名檔案 1、按照一定的格式輸出日期: www.2cto.com date +"%y%m%d" 格式說明: % : 印出 %%n : 下一行%t : 跳格%H : 小時(00-23)%I : 小時(01-12)%k : 小時(0-23)%l : 小時(1-12)%M : 分鐘(00-59)%p : 顯示本地 AM 或 PM%r : 直接顯示時間 (12 小時制,格式為 hh:mm:ss [AP]M)%s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數%S : 秒(00-60)%T : 直接顯示時間 (24 小時制)%X : 相當於 %H:%M:%S%Z : 顯示時區
日期方面 :%a : 星期幾 (Sun-Sat)%A : 星期幾 (Sunday-Saturday)%b : 月份 (Jan-Dec)%B : 月份 (January-December)%c : 直接顯示日期與時間%d : 日 (01-31)%D : 直接顯示日期 (mm/dd/yy)%h : 同 %b%j : 一年中的第幾天 (001-366)%m : 月份 (01-12)%U : 一年中的第幾周 (00-53) (以 Sunday 為一周的第一天的情形)%w : 一周中的第幾天 (0-6)%W : 一年中的第幾周 (00-53) (以 Monday 為一周的第一天的情形)%x : 直接顯示日期 (mm/dd/yy)%y : 年份的最後兩位元字 (00.99)%Y : 完整年份 (0000-9999) 2、命名帶有日期的檔案:filename`date +%y%m%d`,此處的"`"不是單引號。 二、以建立檔案日期為界線刪除檔案 www.2cto.com 1、find命令簡解 find pathname -options [-print -exec -ok ...] pathname: find命令所尋找的目錄路徑。例如用.來表示目前的目錄,用/來表示系統根目錄。 -print: find命令將匹配的檔案輸出到標準輸出。 -exec: find命令對匹配的檔案執行該參數所給出的shell命令。相應命令的形式為'command' { } \;,注意{ }和\;之間的空格。 -ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該參數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓使用者來確定是否執行。 options: -name 按照檔案名稱尋找檔案。 -perm按照檔案許可權來尋找檔案。 -prune使用這一選項可以使find命令不在當前指定的目錄中尋找,如果同時使用-depth選項,那麼-prune將被find命令忽略。 -user按照檔案屬主來尋找檔案。 -group按照檔案所屬的組來尋找檔案。 -mtime -n +n按照檔案的更改時間來尋找檔案, - n表示檔案更改時間距現在n天以內,+ n表示檔案更改時間距現在n天以前。find命令還有-atime和-ctime 選項,但它們都和-m time選項。 -nogroup尋找無有效所屬組的檔案,即該檔案所屬的組在/etc/groups中不存在。 -nouser尋找無有效屬主的檔案,即該檔案的屬主在/etc/passwd中不存在。-newer file1 ! file2 www.2cto.com 尋找更改時間比檔案file1新但比檔案file2舊的檔案。-type 尋找某一類型的檔案,諸如: b - 塊裝置檔案。d - 目錄。c - 字元裝置檔案。p - 管道檔案。l - 符號連結檔案。f - 普通檔案。 -size n:[c] 尋找檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組計。-depth:在尋找檔案時,首先尋找目前的目錄中的檔案,然後再在其子目錄中尋找。-fstype:尋找位於某一類型檔案系統中的檔案,這些檔案系統類型通常可以在設定檔/etc/fstab中找到,該設定檔中包含了本系統中有關檔案系統的資訊。 -mount:在尋找檔案時不跨越檔案系統mount點。-follow:如果find命令遇到符號連結檔案,就跟蹤至連結所指向的檔案。-cpio:對匹配的檔案使用cpio命令,將這些檔案備份到磁帶裝置中。 對於時間相關的參數,有以下補充: -amin n 尋找系統中最後N分鐘訪問的檔案 -atime n 尋找系統中最後n*24小時訪問的檔案 www.2cto.com -cmin n 尋找系統中最後N分鐘被改變檔案狀態的檔案 -ctime n 尋找系統中最後n*24小時被改變檔案狀態的檔案 -mmin n 尋找系統中最後N分鐘被改變檔案資料的檔案 -mtime n 尋找系統中最後n*24小時被改變檔案資料的檔案 2、刪除固定日期以前的檔案 find logs -type f -mtime +5 -exec rm { } \;