Buat cd ikuti tautan simbolis


76

Saya telah memasang kode saya sebagai sshfs di direktori home saya, tetapi hierarki sulit untuk diingat, jadi saya membuat symlink di direktori home saya yang mengarah ke direktori itu. Apakah ada cara sehingga ketika saya melakukan cd ke tautan simbolis itu, alih-alih menyerahkan ke tautan simbolis, itu sebenarnya akan cd ke direktori itu?

Jika pertanyaannya tidak jelas, berikut adalah contoh dari apa yang saya cari:

foo@foo:~$ ls -l
lrwxrwxrwx  1 foo      foo              5 2012-11-14 08:20 foo -> bar/bar

foo@foo:~$ cd foo
foo@foo:~/bar/bar/$

Jawaban:


105

Dengan implementasi POSIX apa pun cd, Anda dapat menggunakan -Popsi untuk melakukan ini.

$ help cd
...
    -P      use the physical directory structure without following symbolic links
...

Anda dapat melihatnya beraksi di sini:

$ mkdir foo
$ ln -s foo bar
$ cd -P bar
$ pwd
/tmp/tmp.WkupF2Ucuh/foo

Jika Anda ingin ini menjadi perilaku default, Anda dapat membuat alias untuk cd, seperti:

alias cd='cd -P'

... atau gunakan set -o physical. Untuk tcsh, perintah yang setara adalah set symlinks=chase.


Dan jika Anda tidak memiliki implementasi Posix ...?
Scott Biggs
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.