실제 경로 -L 및 -P

실제 경로 -L 및 -P

coreutils 매뉴얼에서

-L --logical심볼릭 링크는 지정된 파일 이름 내에서 확인되지만 ..후속 구성 요소가 처리된 후에 확인됩니다.

-P --physical심볼릭 링크는 지정된 파일 이름 내에서 확인되며 ..후속 구성 요소가 처리되기 전에 확인됩니다. 이것이 기본 작동 모드입니다.

두 옵션의 차이점은 심볼릭 링크 처리와 처리 순서라고 생각하는 것이 맞습니까 ..?

이 두 가지 옵션이 어떻게 다른지 설명하고 몇 가지 예를 들어주실 수 있나요?

감사해요.

답변1

예, 차이점은 처리 순서 ..와 심볼릭 링크에 있습니다.

이것이 어떤 영향을 미치는지에 대한 예는 다음과 같습니다. 외부 디스크가 마운트되어 있고 /root/Archives집에서 이를 가리키는 심볼릭 링크가 있습니다.

$ pwd
/home/katsura

$ ls -ld Archives
lrwxrwxrwx 1 root root 14 Oct 23  2013 Archives -> /root/Archives

realpath심볼릭 링크를 해결합니다.

$ realpath Archives
/root/Archives

$ realpath -L Archives
/root/Archives

하지만:

$ realpath Archives/../foo
/root/foo

$ realpath -L Archives/../foo
/home/katsura/foo

옵션이 없거나 사용되는 경우에는 -P심볼릭 링크가 먼저 해결되므로 Archives가 된 /root/Archives..적용됩니다.

-L먼저 적용 되어 가 되고 ..그 다음에 는Archives/../home/katsura남은심볼릭 링크가 해결되었습니다. 심볼릭 링크가 남아 있지 않으므로 결과는 입니다 /home/katsura.

관련 정보