我编写了以下代码行来删除目录的内容。
rm -rf $dir && mkdir -p $dir
但是,如果第一个语句失败,这将不起作用。它会返回 1 吗?
答案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
不使用“内容”,上面的操作就不会失败。
答案2
是的,如果您没有权限删除,$dir
则会rm
失败,-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