मैं केवल कुछ निर्देशिकाओं को कैसे अनुक्रमित कर सकता हूं?


23

मैं अपने Ubuntu सर्वर पर mlocate का उपयोग करना चाहूंगा , लेकिन केवल कुछ निर्देशिकाओं को अनुक्रमित करने के लिए (जैसे /homeऔर /data, लेकिन सब कुछ नीचे नहीं /)। हालांकि, एमएलटेट का मानक कॉन्फ़िगरेशन विपरीत तरीके से काम करता है; आप उन रास्तों को निर्दिष्ट करते हैं जिन्हें आप हटाना चाहते हैं (साथ PRUNE_PATHS)।

क्या इसे प्राप्त करने का कोई आसान तरीका है, या कोई समान उपयोगिता है जो मैं चाहता हूं कि वह क्या करेगा? (नोट: यह एक सूचकांक को बनाए रखना चाहिए mlocate, जैसे findकि स्वीकार्य नहीं है, उदाहरण के लिए) धन्यवाद।

जवाबों:


16

आप -U विकल्प का उपयोग कर सकते हैं - (-डेटाबेस-रूट पेट)

updatedb -l 0 -U /home/user/music -o /home/user/databasefile

-उत्पादन फ़ाइल को लिखता है

-l 0 बनाता है कि आप इसे पढ़ सकते हैं, अन्यथा यह केवल खोज के लिए सुलभ है

तब आप इसका उपयोग कर सकते हैं जैसे:

locate -d /home/user/databasefile Dylan

-डैटबसेपथ सेट करता है

एक से अधिक रूट डायरेक्टरी के साथ मिलीलीटर का उपयोग करने के लिए, बस दो डेटाबेसफाइल्स बनाएं, और इसके लिए दो डेटाबेसपथ के विकल्पों का पता लगाएं:

locate -d /home/user/dbfile1 -d /home/user/dbfile2 searchstring

इसे सम्‍मिलित करने और प्रश्‍न का उत्‍तर देने के लिए और अधिक विशिष्ट:

updatedb -l 0 -U /home -o /home/user/home_dbfile
updatedb -l 0 -U /data -o /home/user/data_dbfile
locate -d /home/user/home_dbfile -d /home/user/data_dbfile Dylan

Upvoting, क्योंकि यह एक आंशिक उत्तर है। हालांकि, यह केवल एक मार्ग को सफेद करने की अनुमति देता है। मेरा प्रश्न विशेष रूप से एक से अधिक पथ को श्वेतसूची में करने के बारे में था।
एंड्रयू फेरियर

1
उत्तर में सुधार और आसान हैंडलिंग के लिए मैं एक उपनाम बनाने की सलाह देता हूं
जांघो

अच्छा उत्तर! मुझे नहीं पता था कि आप समानांतर में दो डेटाबेस में खोज कर सकते हैं, स्पष्टीकरण के लिए धन्यवाद। जब तक कोई बेहतर जवाब नहीं आ जाता मैं इसे स्वीकार कर लेता हूँ!
एंड्रयू फेरियर

है updatedb -l 0 -U /home/user/musicपुनरावर्ती? मेरे मामले में प्रतीत नहीं होता है
Gaia

22

फ़ाइल को संपादित करें /etc/updatedb.conf

PRUNEPATHSउन निर्देशिकाओं के साथ सेट करें जिन्हें आप खोजना नहीं चाहते हैं

PRUNEPATHS="/tmp /var/spool /media"

PRUNEPATHS: निर्देशिकाओं के पथ नामों की एक व्हाट्सएप-अलग-अलग सूची जिसे अद्यतन द्वारा स्कैन नहीं किया जाना चाहिए। प्रत्येक पथ का नाम ठीक उसी रूप में होना चाहिए जिसमें निर्देशिका का पता लगाया जाएगा। डिफ़ॉल्ट रूप से, कोई पथ नहीं छोड़ा जाता है।

ध्यान दें कि उपरोक्त सभी कॉन्फ़िगरेशन जानकारी को कमांड लाइन विकल्प के माध्यम से उपयोगिता में बदला या अपडेट किया जा सकता है updatedb


नहीं, मैं जो चाहता हूं उसके ठीक विपरीत है। यह उन निर्देशिकाओं को छोड़कर सब कुछ अनुक्रमित करेगा।
एंड्रयू फेरियर

आप अपनी निर्देशिका को छोड़कर हर चीज के साथ PRUNEPATHS सेट कर सकते हैं। इस तरह, यह केवल आपकी निर्देशिकाओं को स्कैन करेगा।
LnxSlck

ठीक है, स्पष्ट संपादन के लिए धन्यवाद। यह थोड़ा अव्यवहारिक है, क्योंकि जैसा कि मैं निर्देशिकाओं के साथ उपनिर्देशिकाएं जोड़ना चाहता हूं जिन्हें मैं अनुक्रमित करना चाहता हूं, मुझे उन्हें PRUNEPATHS में जोड़ना होगा। हालाँकि, यह काम करेगा। सलाह के लिये धन्यवाद।
एंड्रयू फेरियर

हाँ मुझे पता है, लेकिन मैं ऐसा करने के लिए mlocate के बारे में अधिक जानकारी नहीं पा सकता हूं। क्या आप ढूंढने जैसी चीज़ का उपयोग नहीं कर सकते?
LnxSlck

नहीं, मेरे पास बहुत अधिक डेटा है, इसलिए यह महत्वपूर्ण है कि इसे अनुक्रमित किया जाए। प्रश्न में स्पष्ट किया है।
एंड्रयू फेरियर

1

मुझे कुछ और मिला जिसे आप आज़मा सकते हैं:

  1. QuickSearch - "तो मेरा SearchTool एक अलग तरीके का उपयोग करता है: यह खोजे गए फ़ोल्डर की सामग्री को सूचीबद्ध करने के लिए 'ls' कमांड का उपयोग करता है, फिर उस आउटपुट पर खोज करता है। इस तरह से खोज की गति बहुत तेज है (पहली बार को छोड़कर) इसे बनाना है। 'ls' आउटपुट)। "

अनुक्रमण के बारे में बहुत निश्चित नहीं है।

  1. टूल ट्रैकर-गुई का उपयोग करें
  2. सुंदर लंगड़ा समाधान सूदो "अपनी खोज निर्देशिका यहां खोजें"> files.list grep 'फ़ाइल नाम' files.list

कई उत्तर न जोड़ने का प्रयास करें। यदि आवश्यक हो, तो मौजूदा उत्तर को संपादित करें और अधिक जानकारी शामिल करें। धन्यवाद।
jokerdino

हां, मैं ऐसा
करूंगा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.