यदि फ़ाइल उर्फ ​​या प्रतीकात्मक लिंक है तो मुझे कैसे पता चलेगा?


13

मैं एक विरासत प्रणाली पर काम कर रहा हूं और मेरे पास फाइलों का एक गुच्छा है जो छवियों को संदर्भित कर रहे हैं जो अन्य फ़ोल्डरों में स्थित हैं।

lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t100x100.jpg -> /home/www/virtual/categories/swm/24/m/00012/t100x100.jpg
lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t100x133.jpg -> /home/www/virtual/categories/swm/24/m/00012/t100x133.jpg
lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t125x150.jpg -> /home/www/virtual/categories/swm/24/m/00012/t125x150.jpg
lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t150x200.jpg -> /home/www/virtual/categories/swm/24/m/00012/t150x200.jpg

मुझे कैसे पता चलेगा कि ये प्रतीकात्मक लिंक या उपनाम हैं?


3
एक प्रतीकात्मक लिंक एक फ़ाइल प्रविष्टि है जो किसी अन्य फ़ाइल को संदर्भित करती है। लिनक्स में, एक उपनाम एक कमांड सिंटैक्स रिप्लेसमेंट है। आप एक उपनाम से क्या मतलब है? या आप बस पूछ रहे हैं कि कैसे पहचानें कि कौन सी फाइलें प्रतीकात्मक लिंक हैं? find folder -type l'फ़ोल्डर' के नीचे सभी प्रतीकात्मक लिंक को सूचीबद्ध करेगा।
StarNamer

क्या आप Mac OS X Finder, या शेल कमांड उपनामों में उपनामों के बारे में पूछ रहे हैं?
डैनियल बेक

मुझे लगता है कि मैं थोड़ा उलझन में था। विचाराधीन फाइलें सिर्फ प्रतीकात्मक लिंक थीं और मुझे लगता है कि मैं ओएस एक्स फाइंडर उपनामों के साथ भ्रमित था।
मार्टिन

जवाबों:


16

प्रतीकात्मक लिंक:

lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t100x100.jpg -> /home/www/virtual/categories/swm/24/m/00012/t100x100.jpg
^
 ` Here it is, l for symbolic link.

यदि आप फ़ाइलें हार्ड लिंक हैं, तो वे अन्य फ़ाइलों की तरह दिखाई देते हैं। उदाहरण के लिए हर निर्देशिका में .हार्डलिंकड नाम की निर्देशिका है।

से $ man find:

एक सामान्य यूनिक्स फाइल सिस्टम पर प्रत्येक निर्देशिका में कम से कम 2 हार्ड लिंक होते हैं: उसका नाम और उसका .' entry. Additionally, its subdirectories (if any) each have a.. उस निर्देशिका से जुड़ा प्रविष्टि।

कड़ी:

-rw-r--r--  3 root root   60 2012-06-25 12:17 File
-rw-r--r--  3 root root   60 2012-06-25 12:17 HardLinkToFile
-rw-r--r--  3 root root   60 2012-06-25 12:17 HardLinkToFile2
lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t100x100.jpg -> /home/www/virtual/categories/swm/24/m/00012/t100x100.jpg
            ^
             ` This number is hard link (reference) count.

11

fileया statआदेशों आपको बता देंगे कि एक फ़ाइल है:

$ ln -s /home this_is_a_link
$ touch this_is_not_a_link
$ file this_*
this_is_a_link:     symbolic link to `/home'
this_is_not_a_link: empty
$ stat this_*
  File: `this_is_a_link' -> `/home'
  Size: 5               Blocks: 0          IO Block: 4096   symbolic link
Device: ca00h/51712d    Inode: 106983      Links: 1
Access: (0777/lrwxrwxrwx)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 2012-07-29 23:28:17.000000000 +0000
Modify: 2012-07-29 23:28:17.000000000 +0000
Change: 2012-07-29 23:28:17.000000000 +0000
  File: `this_is_not_a_link'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: ca00h/51712d    Inode: 106992      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 2012-07-29 23:28:27.000000000 +0000
Modify: 2012-07-29 23:28:27.000000000 +0000
Change: 2012-07-29 23:28:27.000000000 +0000

यदि स्क्रिप्टिंग हो, तो testकमांड अधिक उपयोग की हो सकती है:

   -h FILE
         FILE exists and is a symbolic link (same as -L)
$ for f in this_*; do if test -h "$f"; then echo "$f is a symlink"; else echo "$f is not a symlink"; fi; done
this_is_a_link is a symlink
this_is_not_a_link is not a symlink
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.