मेरे पास विविध दस्तावेजों से भरी एक बड़ी "myfiles" निर्देशिका है और इसकी संरचना को संशोधित नहीं करना चाहती।
इसलिए मैंने दस्तावेजों के प्रत्येक वर्ग के लिए (कई) अन्य निर्देशिकाएं बनाईं। उदाहरण के लिए, मेरे पास एक "छवियां" निर्देशिका है जिसमें विवरण और अन्य मेटाडेटा के साथ "सिम्फनी (समान फ़ाइल नाम के साथ) के लिए" मायफ़ाइल्स "निर्देशिका में प्रत्येक .jpgया .cr2फ़ाइल के लिए सहानुभूति है। सहानुभूति / चित्र निर्देशिका में मूल लिंक की गई फ़ाइल से भिन्न नाम हो सकता है।
मैं यह सुनिश्चित करने का सबसे सरल तरीका ढूंढने की कोशिश कर रहा हूं कि "myfiles" निर्देशिका में प्रत्येक और हर छवि फ़ाइल में "छवियों" निर्देशिका में एक सिमिलिंक है।
फ़ोल्डर संरचना का एक उदाहरण देखें
/myfiles/a.doc
/myfiles/b.jpg
/myfiles/c.cr2
/myfiles/d.mov
परिणाम चाहिए
/images/b_800x600.jpg
/images/b_800x600.desc
/images/c_3820x5640.cr2
/images/c_3820x5640.cr2
ls -lआप उपयोग करके हार्डलिंक की गिनती दूसरे कॉलम में देख सकते हैं।
rmउन सिम्प्लिंक dirs और pax -rwl -s "\|.*regex|modifes_filename|" /path/to/myfiles/*.jpg /path/to/jpg_dirउदाहरण के लिए उपयोग करने के लिए प्रोग्रामेटिक रूप से बदल फाइलनाम के साथ हार्डलिंक केवल उन लोगों के लिए है जो आपके जेपीजी से मेल खाते हैं। आप इससे बहुत कुछ प्राप्त कर सकते हैं - जैसे बदलाव के समय और आदि के आधार पर बैचिंग करना
find /myfiles -type fकिसी फ़ाइल के परिणामों को सहेज सकतेfind /images -type l -exec readlink {} \; | egrep myfilesहैं,/imagesफिर उन फ़ाइलों की एक सूची प्राप्त करने के लिए उपयोग करें, जो तबsedपहले फ़ाइल में पथों को हटाने के लिए प्रत्येक पर कर रहे परिणामों पर पुनरावृति करते हैं, पहली फ़ाइल में आपके द्वारा सहेजे जाने के बाद से सिम्लिंक है और जो फाइलें बची हैं, वे फाइलें हैं जिनमें सिमलिंक नहीं है।