Linux下經過 rm -f 刪除大量的小文件時出現相似以下錯誤信息:mysql
-bash: /bin/rm: Argument list too long
以下圖所示:sql
若是待刪除文件中包含的小文件數量過多,一般是因爲受到 shell 參數個數限制所致。shell
這個是Linux系統存在的限制,能夠經過以下指令查看該參數值的配置:安全
getconf ARG_MAX
注:bash
能夠經過以下方式嘗試刪除:ui
可以使用 awk 一次刪除一個的方式進行刪除。但必須先進入該目錄下。操做方法以下:
1.先進入該目標目錄:spa
ls -l| awk '{ print "rm -f ",$9}'|sh
如圖:blog
3. 再次使用命令 ls -l 查看,發現文件已經刪除完成了.如圖:ip
經過 ls 來配合 xargs 刪除 test 目錄下的全部文件:
經過 find 來完成,更加安全智能,支持的參數更多。
能夠先使用 ls 命令列出須要刪除的文件看是否正確,而後再執行刪除命令。例如,經過以下指令,刪除 test 目錄下的 png 文件:
find /usr/local/tests/ -name "*.png" |xargs rm -r
在執行rm命令時提示Argument list too long,以下:
能夠經過如下腳本經過循環實現刪除,以下:
#!/bin/bash # 此處經過 DIR 指定待處理文件所在的目錄 DIR='/root/mysql' #待刪除目錄 cd $DIR for I in `ls` do #讀取ls結果中的各個文件名進行強制刪除 rm -f $I done