!["rm -rf ./"가 아무것도 삭제하지 않는 이유는 무엇입니까?](https://linux55.com/image/5943/%22rm%20-rf%20.%2F%22%EA%B0%80%20%EC%95%84%EB%AC%B4%EA%B2%83%EB%8F%84%20%EC%82%AD%EC%A0%9C%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
이 명령은 rm -rf ./
하위 디렉터리와 파일로 가득 찬 디렉터리에서는 아무 작업도 수행하지 않습니다. 왜 이런거야? 재귀적이어야 하지 않나요 -r
?
혼란을 더하기 위해 디렉터리를 순회하고 있음을 나타내는 오류 메시지도 인쇄합니다.
rm: refusing to remove ‘.’ or ‘..’ directory: skipping ‘./’
답변1
이 rm
명령은 "." 디렉토리 이름 삭제를 거부합니다. 전체 경로 이름을 사용하는 경우 디렉터리를 반복적으로 삭제해야 합니다 rm -rf `pwd`
. 즉, .
현재 디렉터리인 경우 해당 디렉터리를 삭제할 수도 있습니다.
[testuser@testhost] /tmp$ mkdir ff
[testuser@testhost] /tmp$ cd ff
[testuser@testhost] /tmp/ff$ touch a b c
[testuser@testhost] /tmp/ff$ rm -rf ./
rm: cannot remove directory: ‘./’
[testuser@testhost] /tmp/ff$ ls
a b c
[testuser@testhost] /tmp/ff$ rm -rf /tmp/ff
[testuser@testhost] /tmp/ff$ ls
[testuser@testhost] /tmp/ff$ ls ../ff
ls: cannot access ../ff: No such file or directory
[testuser@testhost] /tmp/ff$ cd ..
[testuser@testhost] /tmp$ ls ff
ls: cannot access ff: No such file or directory
에서 info rm
:
마지막 파일 이름 부분이 ..'인 파일을 삭제하려는 시도는 .' or
프롬프트 없이 거부됩니다.
답변2
현재 디렉토리는 유효하지 않게 되므로 삭제할 수 없습니다.
먼저 삭제하려는 디렉터리(예 cd ..
: )를 변경한 다음 전체 또는 상대 경로 이름을 사용하여 원하는 디렉터리를 삭제합니다.밖에서.