Bash

刪除特定父目錄中的特定目錄時遇到問題

  • April 25, 2016

我正在使用 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 {} +

引用自:https://unix.stackexchange.com/questions/278973