Bash
刪除特定父目錄中的特定目錄時遇到問題
我正在使用 Amazon Linux,bash shell。我正在嘗試編寫一個語句,該語句將刪除特定主目錄中所有名為“target”的子目錄。我想寫這樣的東西,即使目錄不存在,也不會拋出錯誤。我嘗試了以下方法,但出現錯誤
[jboss@mydevbox ~]$ find ~/.jenkins/jobs/subco/workspace/myproject/ -name 'target' -print0 | xargs rm -rf xargs: Warning: a NUL character occurred in the input. It cannot be passed through in the argument list. Did you mean to use the --null option?
寫上面的更好的方法是什麼?
如果您正在使用
-print0
,則應使用該-0
標誌,xargs
以便正確讀取名稱。find ~/.jenkins/jobs/subco/workspace/myproject/ -name 'target' -print0 | xargs -0 rm -rf
或者,如果您有 GNU,則
find
可以使用該-delete
標誌,但如果目錄不為空,它將不起作用find ~/.jenkins/jobs/subco/workspace/myproject/ -name 'target' -delete
或者,您也可以
-exec
與 find 一起使用find ~/.jenkins/jobs/subco/workspace/myproject/ -name 'target' -exec rm -rf {} +