👻

linuxコマンド-pwd-

に公開

pwdコマンドは「print working directory」の略で、今いる地点を指し示します。

linuxには

Everything is an file --全てはファイルである

という哲学思想が根底にあります。

すなわち、pwdは全てがファイルで構成される世界観のなかで、自分が今どの空間にいるかを

指し示しているコマンドであるとも読めます。

pwd
$ pwd
出力
$ /Users/user

ファイル世界のなかで自分がどのような位置にいるかということを決定する方法は二種類あります

それが、論理パスと物理パスです

=============================================================================

論理パス:ユーザーが入力したパスをそのまま辿る
すなわち、そこにシンボリックリンクがあったとしてもユーザーから見た相対的な位置を指し示す
ため、ユーザー視点でそのまま出力されます。
オプションとして

$ pwd -L

で表すことができます。

example
$ mkdir -p /tmp/real/logs
$ ln -s /tmp/real /tmp/link
$ cd /tmp/link/logs

この場合、論理パスで指定すると、ユーザーから見た視点が優先されるので、

論理パス
$pwd -L
出力
$ /tmp/link/logs

が出力されます。

物理パス:実際のファイル構造上の位置を指し示します。

オプションとして、

物理パス
$pwd -P

で表すことができます。

シンボリックリンクは本物の経路ではないと理解できます。なぜなら、シンボリックリンクは
指示対象となるパスに依存した別の経路、位置であると見做せるからです。この場合、ユーザー
からみた視点ではなく、システムからみた位置でシンボリックリンクを「本物」のパスに変換
したリンクを指し示すことに意義が生まれます。このパスの表示を物理パスと言います。

上の例だと、

$ /tmp/link

$ /tmp/real

に依存した仮の経路であると見做せます。

であるため

example
$ mkdir -p /tmp/real/logs
$ ln -s /tmp/real /tmp/link
$ cd /tmp/link/logs
$ pwd -P
出力
$ /tmp/real/logs

となります。

Discussion