यह स्पष्ट नहीं है कि आप किस प्रकार की खोज करना चाहते हैं। यदि आप चाहते हैं कि यह यूनिक्स में कहीं भी काम करे, बल्कि यह कि आपका होम डायरेक्टरी, और आप केवल pathname- आधारित खोजों को करना चाहते हैं, तो निम्न स्कीम व्यावहारिक है, थोड़ा शेल हैकरी के साथ, और मानक का उपयोग कर locatedb:
- प्रत्येक निर्देशिका कि कम से कम एक टैग किए गए फ़ाइल है, एक मानक उपनिर्देशिका की जरूरत है कहते हैं
.path-tags;
- निर्देशिका में प्रत्येक फ़ाइल $ FAG लिंक $ TAG (जिसमें चार नहीं होना चाहिए
_) के साथ एक लिंक है$TAG_$FILE -> ../$FILE
मैं locate-tagस्क्रिप्ट का विवरण आपके पास छोड़ देता हूं; यह केवल locateकमांड और शेल हैकरी का उपयोग करके दो या तीन-लाइनर होना चाहिए । (यदि आप रुचि रखते हैं, तो मैं एक लिख सकता हूं)।
कुछ केडीई चेप्स ने मेटाडेटा के लिए इस तरह की योजना के बारे में बात की, हालांकि मुझे विवरण याद नहीं है।
इस योजना के आधार पर और अधिक परिष्कृत, सामग्री-परीक्षण करने के लिए भी संभव होना चाहिए, जो एक समान लिपि में लिपटा हो find।
अद्यतन आवश्यकताओं पर विचार
- उपयोगकर्ता द्वारा पढ़ी जाने वाली किसी भी फ़ाइल को स्वतंत्र रूप से टैग किया जा सकता है - हां, कोई समस्या नहीं होनी चाहिए
- उपयोगकर्ता एक या कई टैग से मेल खाने वाली फ़ाइलों की खोज कर सकता है - इसी तरह
- पहले से जुड़े टैग को खोए बिना फाइलों को इधर-उधर खिसकाया जा सकता है - वे जिस निर्देशिका में रहते हैं उसे स्वतंत्र रूप से स्थानांतरित किया जा सकता है, लेकिन यदि फ़ाइल को निर्देशिका से स्थानांतरित किया जाता है, तो हम परेशानी में हैं। यदि टैग ने रूप ले लिया है
$TAG_$INODE_$FILEऔर हमारे पास एक कुशल तरीका है जिससे यह पता लगाया जा सके कि किन रास्तों में एक इनोड है , तो हम यह कर सकते हैं, केवल फाइल सिस्टम से बाहर जाने पर टैग खो देते हैं। फ़ाइलों को कॉपी करना कुछ परेशानी पैदा कर सकता है, और यह मेरे मूल सुझाव से अधिक जटिल है।
- सिस्टम को आसानी से बैकअप दिया जा सकता है - अनिवार्य रूप से मुश्किल नहीं है।
- किसी भी डेस्कटॉप वातावरण पर कोई निर्भरता नहीं - कोई नहीं
- यदि कोई भी गुई शामिल है, तो एक क्ली कमबैक होना चाहिए - यही वह जगह है जहाँ हम रहते हैं!
पोस्टस्क्रिप्ट
लिंक (2) द्वारा वर्णित "रिवर्स-इनोड-लुकअप" फ़ाइल (1) में आपने मुझे अपने उत्तर में दिखाया (1) का उपयोग कुछ अतिरिक्त बुनियादी ढांचे को देने के लिए किया जा सकता है। हम रिवर्स लुकअप फ़ाइल पर एक सेवा चला सकते हैं, जो यह जांचता है कि टैग के फ़ाइल नाम में दिया गया प्रत्येक इनोड फ़ाइल के इनोड से मेल खाता है (यदि कोई हो) टैग इंगित करता है। यदि कोई मेल नहीं है, तो आवश्यक सर्जरी की जा सकती है (क्या इनोड अभी भी मौजूद है? यह कहां है?), और रिवर्स लुकअप फ़ाइल को या तो म्यूट या पुनर्जीवित किया जा रहा है, और टैग सिमिलिंक को अपडेट किया जा रहा है।
मैं एक मुश्किल मामले की आशंका करता हूं: क्या होगा यदि टैग की गई फ़ाइल वह नहीं है जहां टैग यह कहते हैं कि, रिवर्स लुकअप फाइल कहती है कि यह अभी भी मौजूद है, लेकिन कौतुक फ़ाइल वह नहीं है जहां लुकअप फाइल कहती है कि, लुकअप फाइल बाहर है दिनांक? इस मामले को संभालने के कुछ तरीके हैं, कोई भी स्पष्ट रूप से आदर्श नहीं है। इसके अलावा, इस पूरे कार्य के लिए पर्ल की तरह अच्छी तरह से अनुकूल है लगता है ...