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