จัดทำ cd ตามลิงก์สัญลักษณ์


76

ฉันติดตั้งรหัสของฉันเป็น sshfs ในโฮมไดเร็กตอรี่ของฉัน, แต่ลำดับชั้นนั้นยากต่อการจดจำ, ดังนั้นฉันจึงสร้าง symlink ในโฮมไดเร็กตอรี่ของฉันซึ่งนำไปสู่ไดเรกทอรีนั้น. มีวิธีที่เมื่อฉัน cd ไปที่ลิงค์สัญลักษณ์แทนที่จะ cding ไปที่ลิงก์สัญลักษณ์จริงจะ cd ไปที่ไดเรกทอรีนั้นหรือไม่

หากคำถามไม่ชัดเจนนี่คือตัวอย่างของสิ่งที่ฉันกำลังมองหา:

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/$

คำตอบ:


105

ด้วยการนำ POSIX ไปใช้cdคุณสามารถใช้-Pตัวเลือกนี้

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

คุณสามารถดูการทำงานได้ที่นี่:

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

หากคุณต้องการให้สิ่งนี้เป็นพฤติกรรมเริ่มต้นคุณสามารถสร้างชื่อแทนcdได้เช่น:

alias cd='cd -P'

... set -o physicalหรือการใช้งาน สำหรับ tcsh set symlinks=chaseคำสั่งเทียบเท่า


และถ้าคุณไม่มีการติดตั้ง Posix ... ?
Scott Biggs
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.