GNU/Linux >> Belajar Linux >  >> Linux

Perilaku cd/bash pada tautan simbolik

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
$ 

Linux
  1. Variabel lingkungan dalam tautan simbolik

  2. Batch Perbarui Tautan Simbolik Secara Rekursif

  3. Terlalu banyak level tautan simbolik

  1. Cara Membuat Tautan Keras dan Simbolik di Linux

  2. Perbedaan Antara Tautan Simbolik dan Tautan Keras?

  3. Bagaimana cara menyalin tautan simbolik?

  1. Perintah Ln:Cara Membuat Tautan Simbolik di Linux

  2. Ganti Tautan Simbolik dengan File

  3. Bagaimana cara mengubah kepemilikan dari tautan simbolik?