"rm -rf ./"가 아무것도 삭제하지 않는 이유는 무엇입니까?

"rm -rf ./"가 아무것도 삭제하지 않는 이유는 무엇입니까?

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

관련 정보