首頁 > 軟體

linux find命令將查詢到的檔案批次刪除方法

2022-12-09 14:03:25

linux find命令將查詢到的檔案批次刪除

全盤搜尋系統中所有字尾為.mp4的檔案,並刪除所有查詢到的檔案:

[root@linuxcool ~]# find / -name "*.mp4" -exec rm -rf {} ;

補充知識

Linux中find三種刪除方式,常用於crontab定時任務和shell指令碼

find 檢視刪除的三種方式,如刪除當前目錄下的TXT檔案:

方法1:xargs rm -f

find ./ -type f -name "*txt" |xargs rm -f

方法2:-exec rm -f

find ./ -type f -name "*txt*" -exec rm -f {} ;

-exec命令是查詢到的每個檔案呼叫一次rm命令,因此速度最慢

方法3:-delete

find ./ -type f -name "*txt" -delete

如果一次刪除大量檔案,建議採用第三種方式。經測試在刪除千萬級檔案時,第三種方式比前兩種快百倍。

刪除時,常用引數:

0、按檔案型別查詢

-type:後面指定檔案的型別。
b - 塊裝置檔案。
d - 目錄。
c - 字元裝置檔案。
p - 管道檔案。
l - 符號連結檔案。
f - 普通檔案。

1、按檔名查詢

-name: 查詢時檔名大小寫敏感。
-iname: 查詢時檔名大小寫不敏感。

2、按檔案時間屬性查詢

-atime -n[+n]: 找出檔案存取時間在n日之內[之外]的檔案。
-ctime -n[+n]: 找出檔案更改時間在n日之內[之外]的檔案。
-mtime -n[+n]: 找出修改資料時間在n日之內[之外]的檔案。
-amin -n[+n]: 找出檔案存取時間在n分鐘之內[之外]的檔案。
-cmin -n[+n]: 找出檔案更改時間在n分鐘之內[之外]的檔案。
-mmin -n[+n]: 找出修改資料時間在n分鐘之內[之外]的檔案。

find -ctime -2        #找出距此時2天之內建立的檔案
find -ctime +2        #找出距此時2天之前建立的檔案

3、按指定目錄深度查詢

-maxdepth: 後面的參數列示距當前目錄指定的深度,其中1表示當前目錄,2表示一級子目錄,以此類推。在指定該選項後,find只是在找到指定深度後就不在遞迴其子目錄了。

4、排除指定子目錄查詢

-path pathname -prune: 避開指定子目錄pathname查詢。
-path expression -prune: 避開表達中指定的一組pathname查詢。
需要說明的是,如果同時使用-depth選項,那麼-prune將被find命令忽略。

5、按檔案大小查詢

-size [+/-]100[c/k/M/G]: 表示檔案的長度為等於[大於/小於]100塊[位元組/k/M/G]的檔案。
-empty: 查詢空檔案。

6、範例:

刪除N天前的檔案,將/usr/local/backups目錄下所有10天前帶”.”的檔案刪除

find /usr/local/backups -mtime +10 -name "*.*" -exec rm -rf {} ;

到此這篇關於linux find命令將查詢到的檔案批次刪除的文章就介紹到這了,更多相關linux find刪除檔案內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com