이 명령은 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 ..
: )를 변경한 다음 전체 또는 상대 경로 이름을 사용하여 원하는 디렉터리를 삭제합니다.밖에서.