bash melacak jalur direktori logis saat ini, seperti yang ditunjukkan pada prompt Anda, dan menginterpretasikan hal-hal seperti cd .. menurut itu. Ini membuat semuanya sedikit lebih konsisten jika Anda hanya menggunakan jalur seperti itu di cd (atau pushd ), dengan mengorbankan hal-hal tak terduga yang terjadi jika Anda kemudian mengharapkan hal yang sama terjadi dengan jalur dalam argumen perintah (atau di dalam perintah; emacs dan vim memiliki aturan sendiri yang dapat dikonfigurasi untuk penanganan symlink, tetapi sebagian besar perintah bergantung pada kernel untuk menanganinya).
Menurut 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 `..'
Dengan kata lain, -L berarti menggunakan logis struktur, sedangkan -P menggunakan yang sebenarnya fisik struktur direktori.
Struktur logisnya seperti ini,
$ tree a
a
└── b
└── symlink -> ..
Struktur fisik sebenarnya saat Anda membuka a/b/symlink adalah,
a
Jika Anda ingin menggunakan nyata .. , maka Anda juga harus menggunakan 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.
Contohnya,
$ 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
$