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
.