2013-04-15 7 views
79

को देखने के लिए जब मैं ls -la symlinkName या stat symlinkName उपयोग कर रहा हूँ सब पथ प्रदर्शित किया जाता है नहीं (उदाहरण, ../../../one/two/file.txt)कैसे पूर्ण सिमलिंक पथ

क्या है लिनक्स आदेश है कि पूर्ण पथ का पता चलता है?

+4

किसी को यहां सावधान रहना चाहिए: जब ls या stat कोई पूर्ण पथ प्रदर्शित नहीं करता है - लिंक का कोई पूर्ण पथ नहीं है! यह esp है। महत्वपूर्ण है जब डिवाइस आरोहित है उदा। एक अलग संदर्भ में (उदाहरण के लिए यदि आपके पास सीडी या यूएसबी-स्टिक पर कुछ है या कुछ टूटी हुई एचडीडी को पुनर्प्राप्त करने का प्रयास करें)। सभी उल्लिखित समाधान (realpath, readlink, ....) घुड़सवार संदर्भ में केवल पूर्ण पथ दिखाते हैं। – flolo

उत्तर

138

realpath सभी लिनक्स स्वादों पर उपलब्ध नहीं है, लेकिन readlink होना चाहिए।

readlink -f symlinkName 

उपरोक्त चाल चलाना चाहिए।

वैकल्पिक रूप से, यदि आप ऊपर स्थापित दोनों में से किसी की जरूरत नहीं है, तो आपको निम्न अगर आप अजगर 2.6 (जो बाद में या) है क्या कर सकते हैं

python -c 'import os.path; print(os.path.realpath("symlinkName"))' 
+10

यदि ओएसएक्स का उपयोग करते हैं, तो '-f' ध्वज छोड़ दें और फिर यह काम करता है। i.e 'ओएसएक्स पर सिमलिंकनाम' –

+0

को रीडलिंक करें- एफ ध्वज केवल एक सापेक्ष पथ – timoxley

+2

देता है यह प्रश्न लिनक्स के बारे में था, आप सब कुछ था। –

16

realpath <path to the symlink file> चाल चलाना चाहिए।

6

यूनिक्स जायके स्थापित ->ll symLinkName

OSX ->readlink symLinkName

अंतर पहला तरीका सीएम लिंक पथ को एक चमकते तरीके से प्रदर्शित करेगा और दूसरा तरीका इसे कंसोल पर सिर्फ गूंज देगा।

0

आप एक system कॉल readlink साथ awk का उपयोग पूर्ण सिमलिंक रास्तों के साथ एक ls उत्पादन के बराबर लाने के लिए कर सकते हैं। उदाहरण के लिए:

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 
0

जानकारी देखने का एक और तरीका 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: - 

आशा इस किसी की मदद कर सकते हैं।

संबंधित मुद्दे