Directory
從目錄中刪除文件:記憶體耗盡
這個問題是報告“參數列表太長”時如何從目錄中刪除所有文件的邏輯延續
我有
drwxr-xr-x 2 doreshkin doreshkin 198291456 Apr 6 21:35 session_data
我試過了
find session_data -type f -delete find session_data -type f | xargs rm -f find session_data -maxdepth 1 -type f -print0 | xargs -r0 rm -f
結果是一樣的:
find: memory exhausted
我該怎麼做才能刪除這個目錄?
這聽起來像一個問題
find
。我注意到一些關於人們在使用特定版本的 GNU findutils 時遇到該錯誤的錯誤報告。您可以嘗試將“find”替換為“ls”和“grep”。像這樣的東西:
cd somedir \ls -f | grep "something" | xargs -d "\n" rm
\ls
相反,反斜杠ls
告訴 bash 忽略任何會影響輸出格式的別名。你也可以說/bin/ls
如果你忘記了反斜杠把戲。該-f
選項告訴它禁用排序(這可以節省時間/記憶體)並包含隱藏文件。xargs的-d "\n"
參數告訴它在換行符而不是空格上拆分。請注意,-d
並非所有版本的 xargs 都支持這一點,這很遺憾。請注意,這是
ls something*
行不通的,因為它something*
是在 bash 中擴展的,而不是通過 ls 擴展的,並且會導致“參數列表太長”錯誤。這就是您通過 grep 管道傳輸結果的原因。