我有一個資料夾,裡面有 137795 個文件。我需要將它們全部刪除。當我跑步時,rm *
我得到了-bash: /bin/rm: Argument list too long
。我該如何克服這個錯誤?
答案1
正如我所看到的,您不需要刪除 dir ,只需刪除裡面的檔案。所以你可以重新創建它
rm -r /path/to/dir && mkdir /path/to/dir
甚至只刪除裡面的文件
find /path/to/dir -type f -delete
公平的第一個工作得更快。
UPD。請注意,從空間消耗的角度來看, with 的方式find
可能不是最佳的,因為目錄大小只有在fsck
.細節。
答案2
解決方法#1:
find /path/to/dir -delete
解決方法#2:
rm a*;
rm b*;
rm c*;
etc
答案3
使用find
可能是最好的選擇。其他答案的一些問題要么不刪除目錄內的所有內容,要么刪除目錄本身。如果沒有特殊字符,您可以ls
與 一起使用,或與某些選項一起使用。xargs
find
ls -1 | xargs rm -r
或者
find . -depth -path ./.* -prune -o -not -name . -delete
這將忽略目前目錄中以.
( -prune
) 開頭的任何內容,並將刪除任何其他檔案或目錄,只要它不是頂級目錄 ( .
)。將-depth
首先查看目錄內部,這將避免“目錄不為空”錯誤。如果該-not
參數在您的系統上不可用,則使用!
。