Linux下按日期删除文件
find / -mtime +n -exec rm -rf {} ;
2.
find . -ctime +3 -type f | xargs rm -rf
find相關參數
參 數:
-amin<分鐘> 查找在指定時間曾被存取過的文件或目錄,單位以分鐘計算。
-anewer<參考文件或目錄> 查找其存取時間較指定文件或目錄的存取時間更接近現在的文件或目錄。
-atime<24小時數> 查找在指定時間曾被存取過的文件或目錄,單位以24小時計算。
-cmin<分鐘> 查找在指定時間之時被更改的文件或目錄。
-cnewer<參考文件或目錄> 查找其更改時間較指定文件或目錄的更改時間更接近現在的文件或目錄。
-ctime<24小時數> 查找在指定時間之時被更改的文件或目錄,單位以24小時計算。
-daystart 從本日開始計算時間。
-depth 從指定目錄下最深層的子目錄開始查找。
-expty 尋找文件大小為0 Byte的文件,或目錄下沒有任何子目錄或文件的空目錄。
-exec<執行指令> 假設find指令的回傳值為True,就執行該指令。
-false 將find指令的回傳值皆設為False。
-fls<列表文件> 此參數的效果和指定"-ls"參數類似,但會把結果保存為指定的列表文件。
-follow 排除符號連接。
-fprint<列表文件> 此參數的效果和指定"-print"參數類似,但會把結果保存成指定的列表文件。
-fprint0<列表文件> 此參數的效果和指定"-print0"參數類似,但會把結果保存成指定的列表文件。
-fprintf<列表文件><輸出格式> 此參數的效果和指定"-printf"參數類似,但會把結果保存成指定的列表文件。
-fstype<文件系統類型> 只尋找該文件系統類型下的文件或目錄。
-gid<群組識別碼> 查找符合指定之群組識別碼的文件或目錄。
-group<群組名稱> 查找符合指定之群組名稱的文件或目錄。
-help或--help 在線幫助。
-ilname<范本樣式> 此參數的效果和指定"-lname"參數類似,但忽略字符大小寫的差別。
-iname<范本樣式> 此參數的效果和指定"-name"參數類似,但忽略字符大小寫的差別。
-inum<inode編號> 查找符合指定的inode編號的文件或目錄。
-ipath<范本樣式> 此參數的效果和指定"-ipath"參數類似,但忽略字符大小寫的差別。
-iregex<范本樣式> 此參數的效果和指定"-regexe"參數類似,但忽略字符大小寫的差別。
-links<連接數目> 查找符合指定的硬連接數目的文件或目錄。
-iname<范本樣式> 指定字符串作為尋找符號連接的范本樣式。
-ls 假設find指令的回傳值為True,就將文件或目錄名稱列出到標準輸出。
-maxdepth<目錄層級> 設置最大目錄層級。
-mindepth<目錄層級> 設置最小目錄層級。
-mmin<分鐘> 查找在指定時間曾被更改過的文件或目錄,單位以分鐘計算。
-mount 此參數的效果和指定"-xdev"相同。
-mtime<24小時數> 查找在指定時間曾被更改過的文件或目錄,單位以24小時計算。
-name<范本樣式> 指定字符串作為尋找文件或目錄的范本樣式。
-newer<參考文件或目錄> 查找其更改時間較指定文件或目錄的更改時間更接近現在的文件或目錄。
-nogroup 找出不屬于本地主機群組識別碼的文件或目錄。
-noleaf 不去考慮目錄至少需擁有兩個硬連接存在。
-nouser 找出不屬于本地主機用戶識別碼的文件或目錄。
-ok<執行指令> 此參數的效果和指定"-exec"參數類似,但在執行指令之前會先詢問用戶,若回答"y"或"Y",則放棄執行指令。
-path<范本樣式> 指定字符串作為尋找目錄的范本樣式。
-perm<權限數值> 查找符合指定的權限數值的文件或目錄。
-print 假設find指令的回傳值為True,就將文件或目錄名稱列出到標準輸出。格式為每列一個名稱,每個名稱之前皆有"./"字符串。
-print0 假設find指令的回傳值為True,就將文件或目錄名稱列出到標準輸出。格式為全部的名稱皆在同一行。
-printf<輸出格式> 假設find指令的回傳值為True,就將文件或目錄名稱列出到標準輸出。格式可以自行指定。
-prune 不尋找字符串作為尋找文件或目錄的范本樣式。
-regex<范本樣式> 指定字符串作為尋找文件或目錄的范本樣式。
-size<文件大小> 查找符合指定的文件大小的文件。
-true 將find指令的回傳值皆設為True。
-typ<文件類型> 只尋找符合指定的文件類型的文件。
-uid<用戶識別碼> 查找符合指定的用戶識別碼的文件或目錄。
-used<日數> 查找文件或目錄被更改之后在指定時間曾被存取過的文件或目錄,單位以日計算。
-user<擁有者名稱> 查找符合指定的擁有者名稱的文件或目錄。
-version或--version 顯示版本信息。
-xdev 將范圍局限在先行的文件系統中。
-xtype<文件類型> 此參數的效果和指定"-type"參數類似,差別在于它針對符號連接檢查。
?
一、按照一定日期格式命名文件
1、按照一定的格式輸出日期:
??
? ? 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`,此處的"`"不是單引號。
二、以創建文件日期為界線刪除文件
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
查找更改時間比文件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小時訪問的文件
-cmin n
查找系統中最后N分鐘被改變文件狀態的文件
-ctime n
查找系統中最后n*24小時被改變文件狀態的文件
? ? -mmin n
查找系統中最后N分鐘被改變文件數據的文件
-mtime n
查找系統中最后n*24小時被改變文件數據的文件
2、刪除固定日期以前的文件
? ?find logs -type f -mtime +5 -exec rm { ?} \;
總結
以上是生活随笔為你收集整理的Linux下按日期删除文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux覆盖和追加
- 下一篇: TKPROF工具