मेरे पास एक प्रतीकात्मक लिंक है /var/www/ निर्देशिका जो वर्डप्रेस से लिंक करती है । जब मैं कमांड चलाता हूं ls -la से /var/www/ निर्देशिका वर्डप्रेस का लिंक दिखाई नहीं देता है । क्या निर्देशिका में मौजूद सभी प्रतीकात्मक लिंक को सूचीबद्ध करने का एक तरीका है?
पार्सिंग ls एक है बुरा विचार®, एक सरल पसंद करते हैं find उस मामले में:
find . -type l -lsकेवल वर्तमान निर्देशिका को संसाधित करने के लिए:
find . -maxdepth 1 -type l -ls
आप उपयोग कर सकते हैं grep साथ में ls वर्तमान निर्देशिका में मौजूद सभी प्रतीकात्मक लिंक को सूचीबद्ध करने का आदेश ।
यह वर्तमान निर्देशिका में मौजूद सभी लिंक को सूचीबद्ध करेगा ।
ls -la /var/www/ | grep "\->"
grep आपका दोस्त है:
ls -lhaF | grep ^l # list linksls -lhaF | grep ^d # list directoriesls -lhaF | grep ^- # list filesयह "एल" से शुरू होने वाली लाइनों को सूचीबद्ध करेगा जो परमिट कॉलम में लिंक का प्रतिनिधित्व करते हैं l उपयोग करें d निर्देशिकाओं के लिए और - फाइलों के लिए
पॉज़िक्सली:
find ! -name . -prune -type l
यह एक निर्देशिका में सभी प्रतीकात्मक रूप से जुड़े आइटम (डीआईआर और एफएन दोनों) लौटाता है:
find . -maxdepth 1 -type l -print | cut -c3- | grep -v "\#"हालांकि, वास्तविक प्रतीकात्मक रूप से जुड़े आइटम प्रकारों के बीच अंतर करने के लिए:
ls -lhaF | grep ^l | grep -v "\#" | cut -c42- | grep -v "/" | cut -d' ' -f1केवल प्रतीकात्मक रूप से लिंक किए गए फ़ाइल नाम आइटम लौटाता है । और,
ls -lhaF | grep ^l | grep -v "\#" | cut -c42- | grep "/" | cut -d' ' -f1केवल प्रतीकात्मक रूप से लिंक किए गए डिरनाम आइटम लौटाता है ।
एक निर्देशिका में प्रतीकात्मक लिंक देखने के लिए:
एक टर्मिनल खोलें और उस निर्देशिका में जाएं ।
-
कमांड टाइप करें:
ls -laयह निर्देशिका में सभी फ़ाइलों को लंबे समय तक सूचीबद्ध करेगा, भले ही वे छिपी हों ।
फाइलें जो शुरू होती हैं
lआपकी प्रतीकात्मक लिंक फ़ाइलें हैं ।
प्रकार ls -lai, यह सभी फाइलों और उपनिर्देशिकाओं को संबंधित इनोड संख्याओं के साथ सूचीबद्ध करेगा । आप जानते हैं कि समान इनोड नंबर वाली फाइलें लिंक(हार्ड या सॉफ्ट) हैं और यह समाधान प्रतीकात्मक लिंक के लिए भी काम करता है ।
अजगर के साथ भी किया जा सकता:
$ python -c "import os,sys; print '\n'.join([os.path.join(sys.argv[1],i) for i in os.listdir(sys.argv[1]) if os.path.islink(os.path.join(sys.argv[1],i))])" /path/to/dirनमूना रन:
$ python -c "import os,sys; print '\n'.join([os.path.join(sys.argv[1],i) for i in os.listdir(sys.argv[1]) if os.path.islink(os.path.join(sys.argv[1],i))])" /etc/etc/vtrgb/etc/printcap/etc/resolv.conf/etc/os-release/etc/mtab/etc/localtimeइसे पुनरावर्ती होने के लिए बढ़ाया जा सकता है os.walk फ़ंक्शन, लेकिन एक निर्देशिका में लिंक सूचीबद्ध करने के लिए सरल सूची पीढ़ी का उपयोग करना पर्याप्त है जैसा कि मैंने ऊपर दिखाया था ।
कृपया किसी भी लिनक्स आधारित ओएस में सभी टूटे हुए प्रतीकात्मक लिंक को खोजने के लिए एक लाइनर बैश स्क्रिप्ट कमांड के नीचे खोजें
b=$(find / -type l); for i in $(echo $b); do file $i ; done |grep -i broken 2> /dev/null
जेडएसएच का उपयोग करना
ls -l *(@)lrwxrwxrwx 1 david david 15 Nov 18 22:35 gvimrc -> /etc/vim/gvimrclrwxrwxrwx 1 david david 13 Nov 18 22:19 mydomains.php -> mydomains.php