디렉토리의 내용을 삭제하기 위해 다음 코드 줄을 작성했습니다.
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