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
.