rmdir dir은 "디렉토리가 아닙니다"라는 오류를 표시합니다.

rmdir dir은 "디렉토리가 아닙니다"라는 오류를 표시합니다.

dir2한 번 다른 디렉토리에서 이동하여 백업 dir1하고 새 디렉토리를 만든 디렉토리처럼 보이는 디렉토리가 있습니다 dir1.

이제 문득 그것을 다시 보고, 그것이 필요하지 않다는 것을 깨닫고 그것을 하다가 rm -r -f dir2, 나의 새 것 dir1역시 비어 있음을 발견합니다.

파일을 다시 찾았지만(코드 저장소이므로 일부 변경 사항이 손실되어 실망스럽습니다), 여전히 이 중복 링크 등을 제거하고 싶습니다 dir2.

그것을 시도했을 때 rmdir(모든 것을 삭제했다는 것을 깨닫기도 전에) 오류가 발생했습니다 Not a directory. 그것은 무엇이며 어떻게 제거합니까? OSX 터미널에서 bash를 사용하십시오.

고쳐 쓰다:다음 제안에 따르면:

ls -ld dir2산출drwxr-xr-x. 19 asaf users 4096 Mar 8 13:09 dir2/

file dir2/산출dir2/: directory

file dir2산출dir2: symbolic link to ...'

답변1

현재는 증거물이 삭제된 상황이라 무슨 일이 일어났는지 알 수 없습니다. dir2증상에 대한 설명이 일치합니다 .심볼릭 링크디렉토리로. 심볼릭 링크는 "실제 파일이 실제로 거기에 있다"는 것을 의미하는 특별한 종류의 파일입니다. 심볼릭 링크 자체는 디렉토리가 아니기 때문에 rmdir아무 것도 할 수 없습니다. 그러나 심볼릭 링크 콘텐츠(디렉터리를 가리키는 심볼릭 링크에 대한 디렉터리의 파일, 일반 파일을 가리키는 심볼릭 링크에 대한 파일 콘텐츠)에 대한 액세스는 링크 대상으로 투명하게 이동하므로 cd dir2디렉터리에 있는 파일을 사용하거나 편집할 때 알 수 없습니다. 아무것.

이것이 사실이라면(합리적으로 보이지만 전혀 확실하지 않습니다!) 명령은 rm -r -f dir2심볼릭 링크만 제거하고 변경 사항이 포함된 디렉터리는 여전히 어딘가에 존재합니다. 링크를 제거했기 때문에 위치를 찾기가 어려울 수 있지만 다음 명령을 사용하여 해당 디렉토리에 있는 파일 이름을 찾을 수 있습니다.locate명령 또는 이에 상응하는 GUI(Spotlight?).

미래, 달리다

ls -ld dir2

그러면 해당 파일이 어떤 유형인지 알려줄 것입니다 dir2. 줄이 로 시작하면 d디렉터리입니다. 행이 로 시작하는 경우 l이는 기호 링크이며 출력은 해당 행이 가리키는 위치(다음 부분 ->)를 나타냅니다.

답변2

이를 실행하면 ls -ld dir2상황에 대해 많은 정보를 얻을 수 있습니다.

심볼릭 링크일 수도 있고 이상한 유형의 파일일 수도 있습니다. 이 시점에서는 그것이 디렉토리라고 가정하지만 다른 옵션도 있습니다. 자동 마운트 공유가 누락되었을 수도 있습니다.

또한 실행해 보십시오 file dir2. 실제 디렉토리가 아닌 경우에는 가 표시될 수 있습니다 rmdir.

관련 정보