bash
プロンプトに示されているように、論理的な現在のディレクトリ パスを追跡し、cd ..
のようなものを解釈します。 それによると。 cd
でのみそのようなパスを使用する場合、これにより、もう少し一貫性が保たれます。 (または pushd
)、コマンド引数内のパス(またはコマンド内; emacs
)で同じことが起こると予想すると、予期しないことが起こるという犠牲を払って および vim
にはシンボリック リンクの処理に関する独自の設定可能なルールがありますが、ほとんどのコマンドはそれを処理するためにカーネルに依存しています)。
help cd
によると 、
Options:
-L force symbolic links to be followed: resolve symbolic
links in DIR after processing instances of `..'
-P use the physical directory structure without following
symbolic links: resolve symbolic links in DIR before
processing instances of `..'
つまり、-L
論理を使用することを意味します 構造、-P
実際の物理的な ディレクトリ構造。
論理構造はこんな感じです、
$ tree a
a
└── b
└── symlink -> ..
a/b/symlink
に行ったときの実際の物理構造
a
本物を使用したい場合 ..
の場合、cd -P
も使用する必要があります :
The -P option says to use the physical directory
structure instead of following symbolic links (see
also the -P option to the set builtin command);
the -L option forces symbolic links to be followed.
例として、
$ cd
$ cd a/b/symlink # physical location is at a/
$ cd .. # now is at a/b
$ cd symlink # goes back to a/b/symlink
$ cd -P .. # follow physical path (resolve all symlinks)
$ pwd -P # -P is optional here to show effect of cd ..
/home/sarnold
$