前言
注意本文說的“海量”并不是指體積大,而是指數(shù)量,比如一個(gè)目錄下有數(shù)百萬個(gè)小文件。
最近在優(yōu)化服務(wù)器時(shí)發(fā)現(xiàn)postfix下的maildrop目錄和clientmqueue目錄下發(fā)現(xiàn)有大量的文件,進(jìn)入這些目錄里使用ls
命令是愚蠢的做法,而直接執(zhí)行rm *
, 沒有任何反應(yīng),文件數(shù)量也沒有減少,也就是說,在海量文件目錄里直接使用rm
命令進(jìn)行刪除是無效的。
那么正確的方法是什么呢?有兩種方法可選:
第一種:
find /path/to/directory -type f -exec rm {} /;
第二種:
ls -1 /path/to/directory | xargs -I{} rm {}
上面這兩種方法可以成功的刪除海量文件,速度也很快。但還有一種更好的方法,比如要?jiǎng)h除上面提到的clientmqueue目錄,里面全部是一個(gè)一個(gè)的郵件,用下面的方法:
service sendmail stopcd /var/spoolmv clientmqueue clientmqueue-todeletemkdir clientmqueuechown --reference=clientmqueue-todelete clientmqueuechmod --reference=clientmqueue-todelete clientmqueueservice sendmail startrm -rf clientmqueue-todelete
上面的方法是將目錄重命名,然后使用了 --reference
引用參數(shù)來重建目錄,然后刪除重命名的目錄。直接刪除目錄的方法速度是十分的快。也可以留著備份不刪。更安全。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)VEVB武林網(wǎng)的支持。
|
新聞熱點(diǎn)
疑難解答
圖片精選