जब मैं उपयोग कर रहा हूं ls -la symlinkNameया stat symlinkNameनहीं तो सभी मार्ग प्रदर्शित हैं (उदाहरण के लिए ../../../one/two/file.txt)
लिनक्स कमांड क्या है जो पूर्ण पथ को प्रकट करती है?
जब मैं उपयोग कर रहा हूं ls -la symlinkNameया stat symlinkNameनहीं तो सभी मार्ग प्रदर्शित हैं (उदाहरण के लिए ../../../one/two/file.txt)
लिनक्स कमांड क्या है जो पूर्ण पथ को प्रकट करती है?
जवाबों:
realpathसभी linux जायके पर उपलब्ध नहीं है, लेकिन readlinkहोना चाहिए।
readlink -f symlinkName
ऊपर वाले को चाल चलनी चाहिए।
वैकल्पिक रूप से, यदि आपके पास उपरोक्त में से कोई भी स्थापित नहीं है, तो आप निम्न कार्य कर सकते हैं यदि आपके पास अजगर 2.6 (या बाद में) स्थापित है
python -c 'import os.path; print(os.path.realpath("symlinkName"))'
-fतो ध्वज को छोड़ दें और फिर यह काम करता है। यानीreadlink symlinkName
realpath <path to the symlink file> चाल चलनी चाहिए।
man realpathनीचे से पता चलता है कि यह "GNU कोरुटिल्स" का हिस्सा है, जो मुझे पूरा यकीन है कि हमेशा उबंटू पर आता है, इसलिए @IanStapletonCordasco का कहना है कि " realpathसभी लिनक्स स्वादों पर उपलब्ध नहीं है", यह कम से कम उपलब्ध होना चाहिए उबंटू और उबंटू व्युत्पन्न जायके मुझे विश्वास है।
यूनिक्स स्वाद -> ll symLinkName
OSX -> readlink symLinkName
अंतर यह है कि 1 तरीका ब्लिंकिंग तरीके से सिम्पल लिंक पथ को प्रदर्शित करेगा और दूसरा तरीका कंसोल पर इसे बाहर निकाल देगा।
जानकारी देखने का दूसरा तरीका यह है statकि अधिक जानकारी दिखाई जाएगी। stat ~/.sshमेरी मशीन के प्रदर्शन पर कमान
File: ‘/home/sumon/.ssh’ -> ‘/home/sumon/ssh-keys/.ssh.personal’
Size: 34 Blocks: 0 IO Block: 4096 symbolic link
Device: 801h/2049d Inode: 25297409 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 1000/ sumon) Gid: ( 1000/ sumon)
Access: 2017-09-26 16:41:18.985423932 +0600
Modify: 2017-09-25 15:48:07.880104043 +0600
Change: 2017-09-25 15:48:07.880104043 +0600
Birth: -
आशा है कि यह किसी की मदद कर सकता है।
आप पूर्ण सिमिलिंक पथ के साथ आउटपुट के बराबर प्राप्त करने के लिए कॉल के awkसाथ उपयोग कर सकते हैं । उदाहरण के लिए:systemreadlinkls
ls | awk '{printf("%s ->", $1); system("readlink -f " $1)}'
जैसे प्रदर्शित करेगा
thin_repair ->/home/user/workspace/boot/usr/bin/pdata_tools
thin_restore ->/home/user/workspace/boot/usr/bin/pdata_tools
thin_rmap ->/home/user/workspace/boot/usr/bin/pdata_tools
thin_trim ->/home/user/workspace/boot/usr/bin/pdata_tools
touch ->/home/user/workspace/boot/usr/bin/busybox
true ->/home/user/workspace/boot/usr/bin/busybox
ls -l। यह भी बिल्कुल भी काम नहीं करता है, यह निर्देशिका (गैर-लिंक) में सब कुछ पर करने की कोशिश करता है और यदि आपके एलएस को पूरी तरह से टूटने वाले रंगों का उपयोग करने के लिए कॉन्फ़िगर किया गया है। बस उपयोग करेंfind . -maxdepth 1 -type l -ls | awk '{print $11 "\t" $12 "\t" $13}'