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/$
rowantran
sumber
3
dua pertanyaan terkait
jw013

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.

Chris Down
sumber
Dan jika Anda tidak memiliki implementasi Posix ...?
Scott Biggs