왜 `rm -r .`을 할 수 없나요? [복사]

왜 `rm -r .`을 할 수 없나요? [복사]

내가 스스로에게 몇 번 물어본 질문 중 하나는 왜 다음을 사용하여 현재 작업 디렉터리를 삭제할 수 없는가입니다.rm -r .

쉘에는 존재하지 않는 디렉토리를 작업 디렉토리로 사용하는 문제가 없으므로 방금 rm -r "../$(basename "$(pwd)")".

왜 두 s는 다르지만 rmand의 출력은 다르지 않고 cwd는 동일합니까?realpath .realpath "../$(basename "$(pwd)")"rm

답변1

설명된 대로'rm .*' 상위 디렉토리를 삭제하셨나요?POSIX 사양의 다음 부분이 적용됩니다.

파일 점 또는 점 점(dot-dot)이 피연산자의 기본 이름 부분(즉, 최종 경로 이름 부분)으로 지정되거나 피연산자가 루트 디렉터리로 확인되는 경우 rm은 표준 오류에 진단 메시지를 쓰고 더 이상 아무것도 하지 않아야 합니다. .

관련 정보