find 刪除命令rm還是delete更快

2021-10-21 06:24:25 字數 1050 閱讀 1707

當使用find來刪除指定檔案時有多種方法,但刪除大量檔案時存在效率問題。

for i in;do

touch tt$i

;done

##由於time命令不支援管道符,因此將命令寫入指令碼中執行。

[root@iz259iq283hz tmp]

# cat del.sh

find ./ -type f -name "tt*"

|xargs

rm -f

[root@iz259iq283hz tmp]

# time ./del.sh

real 0m1.339s

user 0m0.176s

sys 0m1.105s

xargs 可以將管道或標準輸入(stdin)資料轉換成命令列引數,也能夠從檔案的輸出中讀取資料。xargs每次傳入的位元組數是1024位元組。如果find查詢到的檔名較長,比如50個位元組,則一次傳入20個檔案;比如20個位元組,則一次傳入51個檔案。因此刪除速度與檔名長度有關。如果find查詢時不是當前目錄,那麼還會將路徑名計算在內。

[root@iz259iq283hz tmp]

# time find ./ -type f -name "tt*" -exec rm -f {} \;

real 1m31.298s

user 0m1.391s

sys 0m21.368s

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

[root@iz259iq283hz tmp]

# time find ./ -type f -name "tt*" -delete

real 0m1.170s

user 0m0.088s

sys 0m1.036s

-delete命令是find內部呼叫,省去了從外部呼叫的時間。

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

rm 刪除命令

rm 刪除 刪除檔案 rm filename 一 rmdir 刪除乙個空的目錄 rm命令 用於刪除檔案或資料夾。具體語法為 rm 路徑 檔名 例如,要刪除 home long manual.tar檔案,用下面命令 rm home long manual.tar 如果要刪除目錄,用rm r 路徑 目錄...

rm 命令過濾式刪除

1 開啟擴充套件萬用字元 shopt s extglob 2 檢視是否開啟 shopt s 3 使用命令 要刪除當前目錄下 nodelete.txt 以外的所有檔案 rm rf nodelete.txt 1 find not name nodelete.txt exec rm rf 2 也可以將fi...

掌握rm命令刪除檔案

linux rm命令用於刪除乙個檔案或者目錄。檔案一旦通過rm命令刪除,則無法恢復,所以必須格外小心地使用該命令。語法 rm options name.options 引數 i刪除前逐一詢問確認。f強制刪除。忽略不存在的檔案,不提示確認。r將目錄及以下之檔案亦逐一刪除。v詳細顯示進行的步驟 刪除檔案...