coreutils マニュアルから
-L
--logical
シンボリックリンクは指定されたファイル名内で解決されますが、..
後続のコンポーネントが処理された後に解決されます。
-P
--physical
シンボリックリンクは指定されたファイル名内で解決され、..
後続のコンポーネントが処理される前に解決されます。これが基本動作モードです。
2つのオプションの違いは、シンボリックリンク処理と処理順序だと思うのは正しいですか..
?
これらの2つのオプションがどのように異なるかを説明し、いくつかの例を挙げることができますか?
ありがとうございます。
答え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
。