Windows 시스템이 심볼릭 링크를 어떻게 처리하는지 알고 싶습니다( ln -s
Windows가 기본적으로 지원하는 파일 시스템에서 Linux를 통해 생성된 경우).그리고NTFS와 같은 심볼릭 링크를 지원합니다. 내 추측으로는 인식하지 못할 것 같지만 완전히 확신할 수는 없습니다.
또한 Mac이 Mac을 만나면 어떻게 합니까?
답변1
로컬이 아닌 디스크에 관해 이야기할 때는 Windows 버전과 서버측 구성에 따라 다릅니다.
Windows Vista부터 Windows에는 기호 링크 개념이 있지만 의미는 다릅니다. 그러나 여기서 더 중요한 문제는 다른 구문을 따르는 경로 이름입니다. 우선: Unixoid 쪽에는 단일 루트 디렉터리 트리가 있고 Windows 쪽에서는 여러 드라이브 문자가 루트로 사용됩니다.
유닉스 측면에서 심볼릭 링크는 특수 플래그가 있는 텍스트 파일일 뿐입니다. Windows 측에서는 기본 메커니즘을 재분석 지점이라고 합니다. 이는 개체 관리자에게 특정 등록된 필터에 이를 전달하도록 지시합니다(메타데이터는 다음 위치에 저장됨).존재하다재분석 포인트). Windows 2000에는 조인 포인트(대략 디렉터리 기호 링크)라고 하는 일종의 재분석 지점이 도입되었습니다. Vista에서는 원격 드라이브의 파일 및 디렉터리에 대한 기호 링크를 도입했습니다. 및 심볼릭 링크존재하다원격 드라이브도 어느 정도 지원됩니다.
중요한 점은 파일 시스템 드라이버(로컬로 실행되는 경우)가 Windows에 표시되는 경로를 조정하는지 여부입니다. 이 경우 일부 로컬/상대 심볼릭 링크에서 작동합니다. 절대 경로를 대상으로 사용하면 의미를 추론하기가 어렵고 불가능해집니다. 원격 심볼릭 링크("네트워크 공유"에 대한)도 마찬가지입니다.
Mac 측면에서는 잘 모르겠습니다. 별도의 질문으로 이해될 수도 있습니다. 그러나 서버 측에서 이것이 심볼릭 링크임을 전달하는 한, Windows와 달리 모두 SUS 의미 체계를 따르기 때문에 문제가 없다고 생각합니다.
Linux 측 마운트 지점을 고려하십시오.
/dev/sda1 /
/dev/sda2 /home
/dev/sda3 /var
이제 /home/paul/fstab
를 가리키는 심볼릭 링크를 생각해 보세요 /etc/fstab
. 두 개의 서로 다른 볼륨에 있으며 Windows에서 파일 시스템 드라이버를 통해 볼 수 있는 경우(작동합니다!) /etc/fstab
설명된 방식으로 구분할 수 없습니다. 따라서 Windows에서 폴더 아래에 표시되는 링크 (변환된 경우에도) 는 에 존재하지 않는 링크를 \paul\fstab
가리킵니다 . 심볼릭 링크가 상대 경로를 가리키면 상황이 전혀 바뀌지 않습니다.\etc\fstab
/dev/sda2
../../etc/fstab
요점:따라서 일부 극단적인 경우에 작동하도록 만들 수 있다고 생각할 수 있지만 현실은 의미론과 구문이 양쪽에서 다르기 때문에 작동하는 실용적이고 일반적인 접근 방식을 찾을 가능성은 거의 없습니다.
답변2
0xC0000022L에 대한 답변은 Windows 측에서 철저합니다. Mac은 Linux 심볼릭 링크를 인식할 수 있지만 Linux는 인식할 수 없습니다.별명Mac의 Finder에서 제작되었습니다(ln -s로 생성된 기호 링크는 제대로 작동함).