2010-11-15 21 views
15

एक बैश स्क्रिप्ट बनाना, और मैं यह जानने का प्रयास कर रहा हूं कि मेरा प्रतीकात्मक लिंक क्या इंगित करता है। अभी, मैं इसे इसके साथ कर रहा हूं, लेकिन यह केवल तभी काम करता है जब मेरा सिम्लिंक वर्तमान निर्देशिका में है। क्या यह पता लगाने का कोई तरीका है कि मेरा सिम्लिंक क्या इंगित कर रहा है कि यह किसी अन्य निर्देशिका में है या नहीं?मैं कैसे पता लगा सकता हूं कि मेरा प्रतीकात्मक लिंक क्या इंगित कर रहा है?

ls -l "symlink" | cut -d'>' -f2 

उत्तर

23

आप readlink(1) उपयोगिता (GNU coreutils का हिस्सा) है, तो यह आप क्या चाहते हैं नहीं करता है। अन्यथा आप एक क्रीक को थोड़े कर रहे हैं, मुझे किसी भी सीधा & पोर्टेबल समकक्ष के बारे में पता नहीं है।

6

एक बीएसडी toolchain पर, मैं कर रहा हूँ:

stat -f %Y <filename> 

उदाहरण के लिए:

$ stat -c %N /usr/bin/firefox 
`/usr/bin/firefox' -> `../lib/firefox-3.6.12/firefox.sh' 
:

% ln -sf /bsd ~/blah   
% stat -f %Y ~/blah 
/bsd 

एक जीएनयू पर Toolchain यह इतना आसान नहीं है, तो आप की तरह कुछ का उपयोग कर सकते

फिर, जंक कोट्स निकालने और निकालने के लिए awk/cut और sed का उपयोग करें।

या एक मेसीयर समाधान ls -al का उपयोग करना है और या तो आपको आवश्यक कॉलम निकालने के लिए अजीब/कटौती है।

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

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