rm -rf는 제거할 수 없는 디렉토리를 남깁니다. 어떻게 제거할 수 있나요?

rm -rf는 제거할 수 없는 디렉토리를 남깁니다. 어떻게 제거할 수 있나요?

방금 헛소리를 좀 rm -rf했습니다(간단히 말하면 Unreal과 Git을 사용하지 마세요. 문제가 생길 수 있습니다). 이제 다음과 같은 Bash 파일 목록이 있습니다 ls -Al.

d????????? ? ?    ?    ?           ? old-folder-name

?해당 inode는 다음 과 같이 나열됩니다 ls -i. rm old-folder-name해당 파일이나 디렉터리가 없기 때문에 실패하고 ls해당 메시지를 인쇄하지만 실제로 나열하는 것을 막지는 않습니다. 이러한 이유로 모든 시도 mv나 유사한 시도도 실패합니다.cd

현재 WSL을 사용하고 있으며 관리자 계정에서 파일 탐색기를 통해 삭제할 때 관리자 권한 요구에 대한 무의미한 오류가 발생합니다. 둘 다 del실패했습니다 rmdir. 분명히 Windows도 이 문제를 해결할 수 없습니다.

이 폴더를 어떻게 삭제할 수 있나요?

알아채다:다시 시작한 후(예: 밤에 컴퓨터를 종료하고 아침에 다시 켜는 경우) 사라졌습니다. 왜 이런 일이 발생하는지 아직도 궁금합니다.

답변1

삭제하려는 "파일"은 파일이 아니라 디렉터리입니다.
간단한 명령으로 는 제거되지 않습니다. rm -rf 를 사용한 것과 같은 더 복잡한 rm 명령을 rm사용해야 합니다 . rmdir또한 rmdir은 비어 있지 않은 디렉토리를 삭제하지 않습니다.

그러나 ls가 ?'를 인쇄하고 있으므로 다음과 같을 가능성이 높습니다.부모읽기(r) 권한은 있지만 실행(x)(cd into) 권한은 없는 디렉터리입니다.
해결책은 (상위) 디렉터리에 x 권한을 부여하고, 소유자인 경우 읽기 및 쓰기 권한을 부여하는 것입니다.

chmod 711 old-folder-name(parent)

그런 다음 (이전 폴더 이름이 비어 있는 경우):

$ cd old-folder-name(parent)
$ rmdir old-folder-name

또는:

$ cd old-folder-name\(parent\)/
$ rm -rf old-folder-name 

관련 정보