पता लगाएँ कि क्या गैर-सिमलिंक पथ होगा?


10

लिनक्स पर, अगर मैंने चारों ओर cd'd कर दिया है और अब एक निर्देशिका में हूं, तो क्या यह पता लगाने का एक तरीका है कि उस निर्देशिका का वास्तविक पथ क्या है अगर मैंने वहां पहुंचने के लिए एक प्रतीकात्मक लिंक का उपयोग नहीं किया है?

विचार करें:

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4/5 5
$ cd 5
$ pwd 
/home/dave/tmp/5

या:

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4 4
$ cd 4/5
$ pwd 
/home/dave/tmp/4/5

क्या यह पता लगाने का कोई तरीका है कि / home / dave / tmp / 5 वास्तव में / घर / dave / 1/2/3/4/5 है?

जवाबों:


13

के साथ उपयोग के लिए cd, उपयोग करें pwd -P:

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4/5 5
$ cd 5
$ pwd 
/home/dave/tmp/5
$ pwd -P
/home/dave/tmp/1/2/3/4/5

सामान्य प्रतीकात्मक लिंक के लिए, उपयोग करें readlink:

$ cd ..
$ readlink 5
1/2/3/4/5

या ls -l( -dनिर्देशिकाओं के लिए):

$ ls -ld 5
lrwxr-xr-x  1 dave  staff  9 Jul 24 10:10 5 -> 1/2/3/4/5

readlink -f फ़ाइल उस फ़ाइल के लिए गैर-सिमिलिंक पथ देता है, जो मुझे चाहिए। धन्यवाद!
डेविड मैकिनटोश

1
हुह, मैं हमेशा / बिन / pwd का उपयोग करता था, क्योंकि यह नहीं जान सकता कि यह कैसे मिला, जहां यह pwd शेल बिलिन के विपरीत है। स्पष्ट रूप से pwd के बराबर -२।
पीटर कॉर्ड्स

ls -lda किसी कारण के लिए छिपे हुए सिम लिंक के लिए काम नहीं करता है
केसबश

2

आप या तो readlink -f(मूल रूप से, मूल रूप से स्थापित) या अधिक आसानी से याद realpathकिया जाना चाहते हैं, जिसे आपको स्थापित करना है।


0

एक वैकल्पिक विधि जिसका मैंने उपयोग किया,

cd to the symlink
Ctrl+Shift+T #To open a new tab
pwd

नया टैब pwd, सिमिलिंक देता है। ;)


मुझे क्षमा करें, आप यहां किस शेल, विंडो मैनेजर या टर्मिनल का उपयोग कर रहे हैं?
डेविड मैकिन्टोश

मुझे लगता है कि वह
ग्नोम

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