歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux下刪除大量小文件

Linux下刪除大量小文件

日期:2017/3/1 15:36:58   编辑:關於Linux
Linux下刪除大量小文件 在Linux下使用 "rm -rf *" 試圖刪除非常大量的小文件時,可能會報類似下邊的錯誤: /bin/rm: Argument list too long. 這是因為通配符"*"在執行時會被每個匹配的文件名來替換,例如“rm -rf file1 file2 file3 file4″。 系統只分配了一個比較小的緩沖區用來對這個列表進行排序,如果這個緩沖區滿了,則shell不能執行這個命令。 為了解決這個問題,很多人使用find命令來操作。即用find查找每一個文件,然後把文件名一個接一個的傳遞個rm命令,形式如下: find . -type f -exec rm -v {} \; 但是這個方法對於數量巨大的文件時非常緩慢,比如我曾經刪除過一個目錄下的200W+個小文件。 辦法就是使用find命令內置的 "-delete" 參數 ,使用這種方法刪除文件,速度大概是 2000個文件/秒,速度比之前方法得到極大提高。當然也可以加上 "-print"參數來顯示每個刪除的文件。 find . -type f -delete find . -type d -print -delete 但是我不建議加這個參數,如果你要觀察刪除文件的速度,我建議使用df -i 命令來查看indoe節點的變化情況。
Copyright © Linux教程網 All Rights Reserved