Ubuntu

如何刪除許多(200 000)個文件?

  • November 18, 2015

我必須從文件夾中刪除 200 000 個文件(全部),並且我不想刪除文件夾本身。

使用 rm,我得到一個“參數列表太長”的錯誤。我試圖用 xargs 做一些事情,但我不是殼牌專家,所以它不起作用:

find -name * | xargs rm -f
$ find /path/to/folder -type f -delete

你做的一切都是正確的。是**’*’**給您帶來了問題(shell 將其擴展為文件列表而不是find. 正確的語法可能是:

cd <your_directory>; find . -type f | xargs rm -f
find <your_directory> -type f | xargs rm -f

(後者效率稍低,因為它會將更長的名稱傳遞給xargs,但您幾乎不會注意到 :-))

或者,您可以像這樣逃避您的“*”(但是在這種情況下,它也會嘗試刪除“.”和“..”;這不是什麼大問題 - 您只會收到一點警告:-)):

find . -name '*' | xargs rm -f
find . -name "*" | xargs rm -f
find . -name \* | xargs rm -f

如果您的文件名包含空格,請使用以下命令:

find . -type f -print0 | xargs -0 rm -f

引用自:https://serverfault.com/questions/315590