Rm

“rm -rf $dir”會返回假嗎?

  • December 12, 2016

我編寫了以下程式碼行來刪除目錄的內容。

rm -rf $dir && mkdir -p $dir

但是,如果第一個語句失敗,這將不起作用。它會返回 1 嗎?

當然,如果刪除的某些部分會違反權限。例如

$ mkdir -p p/q
$ sudo chown root p p/q
$ sudo chmod 700 p p/q
$ rm -rf p
rm: cannot remove 'p': Permission denied
$ echo $?
1

但是請注意,您可以從屬於您的目錄中刪除不屬於您的目錄。p因此,如果我只嘗試沒有“內容”,上述內容不會失敗。

是的,如果您無權刪除$dirrm則將失敗,-r我認為如果根本無法刪除任何內容,它將失敗。

例如,

$ mkdir test_dir
$ sudo chown root.root test_dir
$ cd test_dir # we no longer have write permission to .
$ sudo mkdir new_dir
$ rm -rf new_dir
rm: cannot remove 'new_dir': Permission denied
$ echo $?
1

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