सीडी को प्रतीकात्मक लिंक का पालन करें


76

मेरे पास मेरी होम डायरेक्टरी में एक sshfs के रूप में माउंट किया गया कोड है, लेकिन पदानुक्रम को याद रखना मुश्किल है, इसलिए मैंने अपने होम डाइरेक्टरी में एक सिमिलिंक बनाया जो उस डायरेक्टरी की ओर ले जाता है। क्या कोई रास्ता ऐसा है कि जब मैं उस प्रतीकात्मक लिंक पर सीडी लगाऊं, बजाय प्रतीकात्मक लिंक के, यह वास्तव में उस निर्देशिका के लिए सीडी होगा?

यदि प्रश्न स्पष्ट नहीं था, तो यहां एक उदाहरण है जो मैं देख रहा हूं:

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। Tsh के लिए, समतुल्य कमांड है set symlinks=chase


और अगर आपके पास एक Posix कार्यान्वयन नहीं है ...?
स्कॉट बिग्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.