web-dev-qa-db-ja.com

論理作業ディレクトリの利点は何ですか?

論理作業ディレクトリとは何かを理解しています。ディレクトリへのシンボリックリンクを作成し、シンボリックリンクを使用してそのディレクトリへのcdを作成すると、論理作業ディレクトリはシンボリックリンクのパス+シンボリックリンク自体!例えば:

$ pwd
/home/john/this_is_a_symbolic_link

しかし、論理作業ディレクトリの利点は正確には何ですか?

2
Steve

やや複雑なユースケース:

一部のシステムでは、たとえば、ユーザーのホームディレクトリがautomounterによってマウントされる場合があります(Solarisの場合と同様)。

から ウィキペディアの「オートマウンター」の記事

オートマウンターは、ローカルシステムリソースを節約し、ファイルシステムを多数のサーバーと共有するシステム間の結合を減らすことを目的としています。たとえば、大規模から中規模の組織では、数百のファイルサーバーと、数千のワークステーションまたはその他のノードが、いつでも任意の数のサーバーからファイルにアクセスする場合があります。通常、特定の時間に特定のノードでアクティブになるのは、比較的少数のリモートファイルシステム(エクスポート)のみです。プロセスが実際にアクセスする必要があるまでそのようなファイルシステムのマウントを延期すると、そのようなマウントを追跡する必要性が減り、信頼性、柔軟性、およびパフォーマンスが向上します。

オートマウンターは、中央ファイルサーバーから/a/tmp_mntなどのパスで、home NFS共有をマウントし、/tmp_mnt/home/steveからシンボリックリンクを作成する場合があります(ログイン時に/home/steve(論理ホームディレクトリ)に物理ホームディレクトリ)。

これには、ウィキペディアの記事に記載されているように、複数のユーザーがアクティブな場合でも、homeNFS共有の単一のマウントのみが必要であるという利点があります。誰かのホームディレクトリが使用されなくなった場合、シンボリックリンクが削除され、すべてのユーザーがログアウトすると、マウントされたNFS共有が完全にアンマウントされる場合もあります。


より簡単な例:

/usr/localのスペースが不足しているとしましょう。次に、新しいディスクを追加して、たとえば次のようにマウントできます。 /data/disk1および/data/disk2。次に、/usr/local/binの古い内容を/data/disk1にコピーし、/usr/local/lib/disk/data2にコピーして、/usr/local/bin/usr/local/libをシンボリックリンクとして再作成することができます。これらの2つのディレクトリ。

cd /usr/local/binでディレクトリを変更すると、物理的には/data/disk1に移動しますが、論理的には/usr/local/binに移動します。これには、/usr/local/binからユーティリティにアクセスすると、/data/disk1変数を更新しなくても、$PATH内の物理的な場所に透過的にアクセスするという効果もあります。


もう1つ:

ユーザーが取り付けたUSBスティックまたはその他のストレージデバイスから、/mediaの下のどこかに/home/steve/my_work_filesとしてシンボリックリンクを作成できます。これの利点は、ファイルが~/my_work_filesの下のどこにあるかを覚えておく必要がなく、cd/mediaに入れることができることです。

3
Kusalananda
$ cd this_is_a_symbolic_link
…
$ pwd
$ cd ..