# परीक्षण> a.plsymlink फ़ाइल के लिए पूर्ण पथ कैसे प्राप्त करें?
my $file = '/home/joe/test';
if (-f $file && -l $file) {
print readlink($file) ;
}
कैसे सिमलिंक फ़ाइल के लिए निरपेक्ष पथ प्राप्त करने के लिए?
# परीक्षण> a.plsymlink फ़ाइल के लिए पूर्ण पथ कैसे प्राप्त करें?
my $file = '/home/joe/test';
if (-f $file && -l $file) {
print readlink($file) ;
}
कैसे सिमलिंक फ़ाइल के लिए निरपेक्ष पथ प्राप्त करने के लिए?
Cwdabs_path द्वारा इस तरह के सुविधा प्रदान करता है के लिए एक सिमलिंक है मिलेगा साथ फ़ाइल :: युक्ति rel2abs का उपयोग करें।
#!/usr/bin/perl -w
use Cwd 'abs_path';
my $file='/home/joe/test';
if(-f $file && -l $file) {
print abs_path($file);
}
सावधान, यूटीएफ -8 फाइलनामों का उपयोग होने पर यह गलत हो जाएगा। उस मामले में 'एनकोड :: decode_utf8 (सीडब्ल्यूडी :: abs_path ($ फ़ाइल)) की तरह कुछ;' की आवश्यकता हो सकती है! –
आप के साथ readlink आप पेट पथ भले ही यह एक और सिमलिंक
use File::Spec;
$path = File::Spec->rel2abs(readlink($file)) ;
फ़ाइल :: स्पेक के rel2abs कई लिंक के साथ काम नहीं कर रहे हैं। सीडब्ल्यूडी का abs_path काम करता है। 'स्पर्श/tmp/target का प्रयास करें; एलएन-एस लक्ष्य/टीएमपी/लिंक 1; ln -s link1/tmp/link2' और 'perl-mfile :: Spec -e' $ f = "/ tmp/link2" की तुलना करें; "$ f:" प्रिंट करें, फ़ाइल :: स्पेक-> rel2abs (रीडलिंक ($ एफ)), "\ n" ''' perl-m'Cwd "abs_path"' -e '$ f = "/ tmp/link2 के साथ "; प्रिंट करें "$ f:", abs_path ($ f), "\ n" '' – mivk
यह साबित करने के लिए धन्यवाद कि पथ उपसर्ग के बिना मुलायम लिंक निर्दिष्ट करते समय जब आप एक ही निर्देशिका में नहीं हैं तो चीजें तोड़ेंगी और इसलिए, एक बुरा करने के लिए काम ;-) – iain
क्या मुझे यह भी इंगित करना चाहिए कि ओपी ने ["सिम्लिंक पॉइंट्स फ़ाइल के पूर्ण पथ" के लिए पूछा है [http://stackoverflow.com/questions/4887672/how-to-get- पूर्ण-पथ-के-सिम्लिंक-फ़ाइल # टिप्पणी-5437184) और * नहीं * कैननिकल पथ (जो एक पूर्ण पथ है लेकिन _not आवश्यक रूप से फ़ाइल के लिए नहीं पूछा गया है)? – iain
देखें आप कह रहे हैं आप सिमलिंक अंक के लिए सिमलिंक या फ़ाइल का निरपेक्ष पथ का निरपेक्ष पथ करना चाहते हैं? – iain
फ़ाइल का पूर्ण पथ – Tree
पर सिमलिंक बिंदुओं को इंगित करता है तो वास्तव में आप केवल यह जानना चाहते हैं कि किसी दिए गए पथनाम के लिए पूर्ण पथ कैसे प्राप्त करें, क्योंकि आप पहले ही जानते हैं कि 'readlink() 'का उपयोग कैसे करें- फ़ाइल। –