rm -r cache/*.mat 發生錯誤 bash: /usr/bin/rm: Argument list too long
你遇到的錯誤:
bash: /usr/bin/rm: Argument list too long
代表 cache/*.mat 展開後檔案太多,超過系統允許的最大指令長度。
✅ 解法 1:用 find(最推薦)
這種情況 必須用 find,因為 find 是「逐一處理檔案」,不會有 argument too long 的問題。
刪除全部 .mat:
find cache -name "*.mat" -type f -delete或:
find cache -name "*.mat" -type f -exec rm {} \;
✅ 解法 2:只清空整個資料夾(如果你確定可刪光)
如果 cache/ 裡只有你要刪的資料:
rm -rf cache/*
⚠️ 注意:仍可能在檔案爆量時失敗,取決於 shell 展開。
✅ 解法 3:使用 xargs(安全、快速)
find cache -name "*.mat" -print0 | xargs -0 rm
-print0 與 -0 會安全地處理檔名中包含空格或特殊字元。建議哪一個?
你應該用這個:
find cache -name "*.mat" -type f -delete最乾淨、最快、最安全、不會有 too long 問題。

留言板
歡迎留下建議與分享!希望一起交流!感恩!