आपके Linux फ़ाइल खोज टूलबॉक्स के लिए एक और टूल – locate कमांड। यह बताता है कि इसका उपयोग कैसे करें।
locate कमांड विशेष रूप से उनके नाम से फ़ाइलों और फ़ोल्डर्स को खोजने के लिए बनाया गया है। यह उपयोग में आसान है और पैटर्न का उपयोग करके फ़ाइलों को खोज सकता है। यह मददगार है यदि आप किसी विशिष्ट प्रकार/फ़ाइल एक्सटेंशन वाली फ़ाइलों की तलाश कर रहे हैं।
locate इंस्टॉल करना
locate आपके सिस्टम पर डिफ़ॉल्ट रूप से इंस्टॉल नहीं हो सकता है।
Debian/Ubuntu-आधारित डिस्ट्रीब्यूशन्स पर इंस्टॉल करने के लिए, चलाएं:
sudo apt install mlocate
या Redhat/CentOS/Fedora पर:
sudo yum install mlocate
Linux locate कमांड सिंटैक्स
locate कमांड तेज़ है। ऐसा इसलिए है क्योंकि यह फ़ाइल सिस्टम को सीधे खोजने के बजाय, फ़ाइलों के एक डेटाबेस को खोजता है जिसे समय-समय पर अपडेट किया जाता है। यह खोज को बहुत तेज़ बनाता है।
हालांकि, इसका मतलब यह है कि यदि कोई फ़ाइल डेटाबेस के अंतिम रिफ्रेश के बाद से मूव, रीनेम, या हटा दी गई है, तो यह अभी भी परिणामों में दिखाई देगी।
डिफ़ॉल्ट रूप से, locate द्वारा फ़ाइलों को खोजने के लिए उपयोग किया जाने वाला डेटाबेस दैनिक रूप से अपडेट होने के लिए शेड्यूल किया जाता है, लेकिन यदि आपने अपनी फ़ाइलों को पुनर्व्यवस्थित किया है और अपडेटेड रिकॉर्ड पर खोज करना चाहते हैं तो मैन्युअल अपडेट ट्रिगर करना संभव है।
डेटाबेस अपडेट करना
locate द्वारा फ़ाइलों को खोजने के लिए उपयोग किए जाने वाले डेटाबेस को अपडेट करने के लिए, चलाएं:
sudo updatedb
फ़ाइलों का पता लगाना
locate का उपयोग करके फ़ाइलों को खोजने का सिंटैक्स इस प्रकार है:
locate OPTIONS PATTERN
ध्यान दें कि:
- OPTIONS वैकल्पिक हैं और locate कमांड के डिफ़ॉल्ट व्यवहार को बदलने के लिए नीचे दी गई तालिका से सप्लाई किए जा सकते हैं
- PATTERN वह पैटर्न है जिससे फ़ाइल नामों को मेल खाना चाहिए ताकि खोज के लिए मैच माना जाए
- मिलते-जुलते फ़ाइलों के परिणाम डिफ़ॉल्ट रूप से पूरे फाइलसिस्टम से होंगे – न कि केवल वर्तमान वर्किंग डायरेक्ट्री
- यदि locate कमांड के उपयोग के लिए कोई डेटाबेस जनरेट नहीं किया गया है, तो आपको एक जनरेट करने के लिए प्रेरित किया जा सकता है
- locate कमांड स्टेटस कोड 0 वापस करेगा यदि मिली फ़ाइल मिलती है और 1 यदि कोई फ़ाइल नहीं मिलती या त्रुटि होती है।
कमांड विकल्प
यहाँ आधिकारिक डॉक्स से सीधे locate कमांड के लिए कुछ आमतौर पर उपयोग किए जाने वाले विकल्प हैं:
| विकल्प | विवरण |
|---|---|
| -b | निर्दिष्ट पैटर्न के विरुद्ध केवल बेस नाम से मिलान करें। |
| -c | मानक आउटपुट पर फ़ाइल नाम लिखने के बजाय, केवल मिलते-जुलते एंट्रीज की संख्या लिखें। |
| -e | केवल उन एंट्रीज को प्रिंट करें जो locate चलाने के समय मौजूद फ़ाइलों को संदर्भित करती हैं। |
| -i | पैटर्न मिलान करते समय केस अंतर को अनदेखा करें। |
| -l | LIMIT एंट्रीज मिलने के बाद सफलतापूर्वक बाहर निकलें। यदि –count विकल्प निर्दिष्ट है, तो परिणामी काउंट भी LIMIT तक सीमित है। |
| -P | जब फ़ाइलें मौजूद हैं या नहीं जांच रहे हों (यदि –existing विकल्प निर्दिष्ट है), तो ट्रेलिंग सिम्बोलिक लिंक्स को फॉलो न करें। यह टूटे हुए सिम्बोलिक लिंक्स को अन्य फ़ाइलों की तरह रिपोर्ट करने का कारण बनता है। |
| -q | डेटाबेस पढ़ने और प्रोसेसिंग करते समय मिली त्रुटियों के बारे में कोई संदेश न लिखें। |
| -r | बेसिक रेगेक्स REGEXP के लिए खोजें। यदि इस विकल्प का उपयोग किया जाता है तो कोई PATTERNs अनुमत नहीं हैं, लेकिन इस विकल्प को कई बार निर्दिष्ट किया जा सकता है। |
| –regex | सभी PATTERNs को एक्सटेंडेड रेगेक्स्प्स के रूप में व्याख्या करें। |
locate कमांड के लिए यूजर मैनुअल चलाकर विकल्पों की पूरी सूची देख सकते हैं:
man locate
locate कमांड उदाहरण
locate फ़ंक्शन का सबसे बुनियादी उपयोग दिए गए नाम से मेल खाने वाली फ़ाइल को खोजना है:
locate filename
फाइल सिस्टम में प्रत्येक मिलती-जुलती फ़ाइल के लिए फ़ाइल पथों की एक सूची वापस की जाएगी।
ऊपर समझाए अनुसार, फाइलसिस्टम को locate द्वारा खोजा नहीं जाता – बल्कि एक डेटाबेस जो फाइलसिस्टम को इंडेक्स करता है और समय-समय पर अपडेट किया जाता है, खोजा जाता है। यह चीजों को तेज़ रखता है लेकिन समस्या पैदा कर सकता है यदि आपने अभी-अभी फ़ाइलों का एक गुच्छा मूव किया है और डेटाबेस अभी तक अपडेट नहीं हुआ है।
-e विकल्प locate को परिणाम सूची में जोड़ने से पहले फ़ाइल सिस्टम में फ़ाइल के अभी भी मौजूद होने की जांच करने के लिए मजबूर करेगा:
locate -e filename
यह नई बनाई गई या मूव की गई फ़ाइलों के परिणामों में न होने (या उनके पुराने स्थान पर दिखाई देने) की समस्या को हल नहीं करता है लेकिन हटाई गई फ़ाइलों के परिणामों में दिखाई देने की समस्या को हल करता है।
पैटर्न सप्लाई किए जा सकते हैं ताकि आप फ़ाइल एक्सटेंशन द्वारा आसानी से खोज सकें:
locate *.mp3
उपरोक्त उदाहरण डेटाबेस में पाई गई सभी mp3 फ़ाइलों को वापस करेगा।
locate कमांड डिफ़ॉल्ट रूप से केस-सेंसिटिव है – इसे -i विकल्प का उपयोग करके ओवरराइड किया जा सकता है:
locate -i FILENAME
आप -c विकल्प का उपयोग करके मिलती-जुलती फ़ाइलों की संख्या भी गिन सकते हैं:
locate -c filename