作者 主題: 刪除檔案發生 Argument list too long  (閱讀 1637 次)

0 會員 與 1 訪客 正在閱讀本文。

iopklmm

  • 懷疑的國中生
  • **
  • 文章數: 71
    • 檢視個人資料
刪除檔案發生 Argument list too long
« 於: 2013-02-26 14:51 »
請問一下

我有個資料夾 , 下面的檔案要刪除 , 我打 rm * , 他顯示rm: Argument list too long.

好像是因為檔案太多 , 那我應該怎麼做?

謝謝
 

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
Re: 刪除檔案發生 Argument list too long
« 回覆 #1 於: 2013-02-26 14:55 »
寫一個loop 從aA-zZ, 0-9開頭的檔案,應該就可以砍了。

如果還是太多,再aAa-aAz...分開來砍....。

砍之前先搬到個別目錄,以備不時。
lifeIsFunWithPHP.

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5396
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: 刪除檔案發生 Argument list too long
« 回覆 #2 於: 2013-02-26 16:10 »
find . | xargs rm -f

iopklmm

  • 懷疑的國中生
  • **
  • 文章數: 71
    • 檢視個人資料
Re: 刪除檔案發生 Argument list too long
« 回覆 #3 於: 2013-02-26 17:02 »
請問一下 , 如果有某些檔案在程式內用外部命令刪除他會顯示 no such file or directory ,可是如果手動 rm 他又可以被刪除, 用 find . | xargs rm -f 也可以刪除 , 那可能是什麼原因使它不能被外部命令刪除?

謝謝

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17466
    • 檢視個人資料
    • http://www.study-area.org
Re: 刪除檔案發生 Argument list too long
« 回覆 #4 於: 2013-02-26 20:45 »
* 在 shell command line 中會作 path name expansion 處理,簡單而言,會把所有非隱藏檔作為 argument 塞給 rm 這個命令來處理。rm 命令有 argument 數量限制才會出現Argument list too long。
用 find 或 loop 塞給 rm 的話,每次的argument只有一個,所以就沒問題了。