$HOME이 발견될 때 'rmdir -p --ignore-fail-on-non-empty'가 실패하는 이유는 무엇입니까?

$HOME이 발견될 때 'rmdir -p --ignore-fail-on-non-empty'가 실패하는 이유는 무엇입니까?

다음 명령을 고려하십시오.

cd /
mkdir -p ~/a/b
touch ~/a/content
# Removes dir 'b' and stops at 'a' because it's non-empty.
# (This is the expected behavior.)
rmdir -p --ignore-fail-on-non-empty ~/a/b

rm ~/a/content
mkdir -p ~/a/b
# Fails with error: "rmdir: failed to remove directory '/home/myhome'".
rmdir -p --ignore-fail-on-non-empty ~/a/b

rmdir마지막 단계에서 왜 실패했나요? 왜 삭제하려고 합니까?비어 있지 않음 $HOME멈추는 대신?

답변1

내용은 다음과 같습니다 man rmdir.

--null이 아닌 오류를 무시합니다.

모든 실패를 무시하다홀로디렉토리가 비어 있지 않기 때문에

즉, 어떤 이유로든 디렉토리를 삭제할 수 없습니다.다른비어 있는 경우를 제외하고 오류는 계속 보고됩니다.

/home일반 사용자는 일반적으로 수정 (자신의 홈 디렉터리 삭제 포함) 을 수행할 수 있는 충분한 권한이 없으므로 rmdir이와 같이 호출할 때 "권한 거부" 오류만 발생합니다.

다음을 시도해 보면 이를 쉽게 확인할 수 있습니다.

rmdir ~

결과는 다음과 같습니다.

rmdir: failed to remove '/home/youruser': Permission denied

관련 정보