यह संक्षिप्त लेकिन विस्तृत गाइड आपको Linux में "find" कमांड का उपयोग शुरू करने में मदद करेगी और सहायक वास्तविक-विश्व उदाहरण प्रदान करेगी।
पिछले कुछ वर्षों में हार्ड ड्राइव और भी कम खर्चीली हो गई हैं इसलिए हम अपने कंप्यूटर पर कई गीगाबाइट या कभी-कभी टेराबाइट डेटा रखने के आदी हो गए हैं। यह तब होता है जब हमारे कंप्यूटर पर जानकारी ढूंढना महत्वपूर्ण हो जाता है। Linux में "find" नामक एक बहुत उपयोगी कमांड लाइन टूल है जो आपको ठीक ऐसा करने में मदद करेगा। मैं आपको "find" कमांड की कुछ बुनियादी विशेषताएं साझा करूंगा ताकि आप शुरुआत कर सकें। मुझे पूरा यकीन है कि आप इसे काफी उपयोगी पाएंगे।
"find" का उपयोग करने का सिंटैक्स इस तरह बनता है:
# find [where to search] [criteria]
इसके उपयोग का एक सरल उदाहरण है:
# find -name "*.txt"
./Documents/articles/doctor_dolittle.txt
./Documents/articles/Installing_Redhat_Linux.txt
./Desktop/todo_list.txt
उपरोक्त कमांड वर्तमान डायरेक्टरी और उसके सभी सबडायरेक्टरी में "txt" एक्सटेंशन वाली फ़ाइलों को खोजेगी। यहां ध्यान देने योग्य एक बात यह है कि find के सभी पैरामीटर पूरी तरह से वैकल्पिक हैं। इसका मतलब है कि भले ही आप सिर्फ "find" कमांड दर्ज करें और एंटर कुंजी दबाएं तो आपको परिणाम मिलेगा - वर्तमान डायरेक्टरी और सबडायरेक्टरी में सभी फ़ाइलों की सूची। इसे आज़माएं।
यदि आप टेक्स्ट फ़ाइलों के लिए कई डायरेक्टरी खोजना चाहते हैं तो आप खोजने के लिए डायरेक्टरी को एक के बाद एक सूचीबद्ध कर सकते हैं:
# find /home/hobbes/ /home/calvin/ -name "*.txt"
/home/calvin/Documents/articles/doctor_dolittle.txt
/home/calvin/Desktop/todo_list.txt
/home/hobbes/Desktop/articles.txt
/home/hobbes/data_logging.txt
जब आप कुछ खोज चलाते हैं तो आपको कुछ त्रुटियां मिल सकती हैं। यह ज्यादातर अनुमतियों की कमी से संबंधित होगी। आउटपुट को बहुत क्लीनर बनाने की एक अच्छी ट्रिक है त्रुटियों को "/dev/null" पर भेजना:
find /home/hobbes/ /home/calvin/ -name "*.txt" 2>/dev/null
एक और समस्या जिसका आप सामना कर सकते हैं वह यह है कि डिफ़ॉल्ट रूप से ये खोज केस सेंसिटिव हैं। इसलिए "picasso" खोजने से "Picasso" परिणाम नहीं मिलेगा। आप "-iname" विकल्प का उपयोग करके इससे बच सकते हैं:
# find /home/calvin/ -iname "picasso"
./Documents/images/picasso.png
./Documents/articles/The_artist_Picasso.doc
"find" कमांड के लिए कई कूल "हैक्स" हैं। यहां कुछ हैं। पिछले 45 मिनट में संशोधित फ़ाइलों को खोजने के लिए आप टाइम-आधारित खोज कर सकते हैं:
# find /home/calvin/ -mmin -45
./hello.txt
./artwork.jpg
इसी तरह आप उन फ़ाइलों को खोज सकते हैं जो 15 और 25 मिनट पहले संशोधित हुई थीं:
# find -mmin +15 -mmin -25
आप यह भी नियंत्रित कर सकते हैं कि "find" सबडायरेक्टरी खोजते समय कितनी गहराई तक जाता है। निम्न कमांड:
# find /home/calvin/ -maxdepth 2 -name "*.txt"
निर्दिष्ट डायरेक्टरी के केवल शीर्ष दो स्तरों तक जाएगा और "txt" फ़ाइल एक्सटेंशन वाली फ़ाइलों को खोजेगा। वैकल्पिक रूप से आप "find" को केवल दो स्तर नीचे खोजने के लिए भी कह सकते हैं:
# find /home/calvin/ -mindepth 2 -name "*.txt"
./artexpo.txt
./Documents/project.txt
अधिकांश कमांड की तरह आप आउटपुट को फ़ाइल में जोड़ सकते हैं। इसलिए यदि आप खोज को लॉग करना चाहते हैं तो आप निम्न कार्य कर सकते हैं:
# find /home/calvin/ -name "*.txt" > /tmp/search.log
"find" कमांड एक बार जब आप इसकी आदत डाल लेते हैं तो अत्यंत उपयोगी हो सकती है। इस पर शायद एक किताब लिखी जा सकती है। मैंने यहां आपके साथ जो साझा किया है वह संभावनाओं का सिर्फ एक स्वाद है। "find" की अन्य विशेषताओं के संकेत के लिए find मैनपेज देखें। या "find and replace" के साथ और भी आगे जाएं।