要删除
系統中就的備份檔案,就需要使用指令了:
#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、删除固定日期以前的檔案