"find" इस्तेमाल करना फाइल्स में मौजूद टेक्स्ट के लिए सर्च करना (Searching for Text in Files) "locate" इस्तेमाल करना
ये find कमांड के जरिए की जाने वाली सबसे बेसिक सर्च है, जिसे आप परफ़ोर्म कर सकते हैं। नीचे दी हुई कमांड, मौजूदा डाइरैक्टरी में और दूसरी सब-डाइरैक्टरी में क्विरी (query) के लिए सर्च करेगा।  find -iname "filename"    -name की जगह पर -iname इस्तेमाल करना, आपकी क्विरी के केस को इग्नोर करता है। -name कमांड केस-सेंसिटिव (case-sensitive) होती है। अगर आप आपके पूरे सिस्टम की सर्च करना चाहते हैं, तो आप क्विरी में / मोडीफायर एड कर सकते हैं। ये find को रूट डाइरैक्टरी से स्टार्ट होने वाली हर एक डाइरैक्टरी पर सर्च करने का कहेगा।  find / -iname "filename"    आप / को डाइरैक्टरी पाथ, जैसे कि /home/pat के साथ में रिप्लेस करके खास डाइरैक्टरी में सर्च स्टार्ट कर सकते हैं। आप चाहें तो आपकी सर्च को मौजूदा डाइरैक्टरी और सब-डाइरैक्टरी पर ही परफ़ोर्म करने के लिए / की बजाय . का इस्तेमाल कर सकते हैं। * का इस्तेमाल करें: अगर आपको किसी चीज का पूरा नाम नहीं मालूम है या फिर आप किसी खास एक्सटैन्शन के साथ में हर एक चीज की तलाश करना चाहते हैं, तो ऐसे में वाइल्डकार्ड * केरेक्टर उस चीज की तलाश करने में आपकी मदद कर सकता है।  find /home/pat -iname "*.conf"    ये Pat's यूजर फोल्डर (और सब-डाइरैक्टरी) में सारी .conf फाइल्स को रिटर्न करेगा। आप इसे हर उस चीज को पाने के लिए भी इस्तेमाल कर सकते हैं, जो आपकी फ़ाइल नेम के हिस्सों से मैच करता है। उदाहरण के लिए, अगर आपके पास में विकिहाउ (wikiHow) से जुड़े हुए कई सारे डॉक्यूमेंट है, तो आप "*wiki*" टाइप करके, उन सभी को पा सकते हैं। अगर आपको बहुत सारे सर्च रिजल्ट्स मिल रहे हैं, तो फिर आपके लिए उनमें से ढूंढ पाना थोड़ा मुश्किल हो सकता है।  | केरेक्टर का इस्तेमाल करें और सर्च रिजल्ट्स को "कम" फिल्टरिंग प्रोग्राम में भेज दें। ये आपको आपके सर्च रिजल्ट्स में से ज्यादा आसानी से स्क्रॉल और फिल्टर करने देता है।  find /home/pat -iname "*.conf" | less आप केवल खास तरह के रिजल्ट्स को पाने के लिए मोडीफायर्स का इस्तेमाल कर सकते हैं। आप सही तरह के मोडीफायर्स का इस्तेमाल करके रेगुलर फाइल्स (f), डाइरैक्टरी (d), सिंबलिक लिंक्स (l), केरेक्टर डिवाइसेस (c) और ब्लॉक डिवाइसेस (b) के लिए सर्च कर सकते हैं।  find / -type f -iname "filename" अगर आपके पास में एक ही तरह के नाम की काफी सारी फाइल्स हैं, लेकिन आपको तलाश की जा रही फ़ाइल का साइज मालूम है, तो आप रिजल्ट्स को साइज के हिसाब से फिल्टर कर सकते हैं।  find / -size +50M -iname "filename"    ये उन रिजल्ट्स को सामने देगा, जिनका साइज 50 मेगाबाइट्स (megabytes) या और ज्यादा है: आप ज्यादा या कम साइज के लिए सर्च करने के लिए + या - इस्तेमाल कर सकते हैं। + या - को छोड़ना, एकदम आपके दर्शाए हुए साइज के लिए ही सर्च करेगा। आप बाइट्स (c), किलोबाइट्स (k), मेगाबाइट्स (M), गीगाबाइट्स (G) या 512-बाइट ब्लॉक्स (b) के जरिए भी फिल्टर कर सकते हैं। एक बात का ध्यान रखें कि साइज फ्लेग केस-सेंसिटिव होता है। आप अलग-अलग सर्च को एक साथ कम्बाइन करने के लिए -and, -or, और -not ऑपरेटर्स का इस्तेमाल कर सकते हैं।  find /travelphotos -type f -size +200k -not -iname "*2015*"   ये कमांड उन फाइल्स को "travelphotos" डाइरैक्टरी में तलाश करेगी, जो 200 किलोबाइट्स से बड़ी हैं, लेकिन उनके फ़ाइल नेम में कहीं पर भी "2015" नहीं है। अगर आप किसी यूजर के अधिकार में मौजूद किसी खास फ़ाइल को या फिर खास पर्मिशन वाली फाइल्स को पाने की कोशिश कर रहे हैं, तो आप सर्च को छोटा कर सकते हैं।  find / -user pat -iname "filename" find / -group users -iname "filename" find / -perm 777 -iname "filename"   ऊपर दिया हुआ उदाहरण, क्विरी के लिए एक खास तरह के यूजर्स, ग्रुप्स या पर्मिशन के लिए सर्च करेगा। आप चाहें तो उस टाइप से मैच होने वाली सारी फाइल्स को सर्च करने के लिए फ़ाइलनेम को छोड़ सकते हैं। उदाहरण के लिए, find / -perm 777 777 (बिना कोई प्रतिबंध) पर्मिशन वाली सारी फाइल्स को रिटर्न करेगी। आप चाहें तो find कमांड को दूसरी कमांड के साथ में कम्बाइन कर सकते हैं, ताकि आप उन्हें क्विरी के जरिए रिटर्न हुई सारी फाइल्स के साथ में एग्जीक्यूट कर सकें। find कमांड और दूसरी कमांड को -exec फ्लेग के साथ में अलग कर दें, फिर {} \; लाइन को के साथ में खत्म करें।  find . -type f -perm 777 -exec chmod 755 {} \;   ये मौजूदा डाइरैक्टरी (और सभी सब-डाइरैक्टरीज) में 777 पर्मिशन वाली फाइल्स के लिए सर्च करेगा। ये पर्मिशन को 755 पर चेंज करने के लिए chmod कमांड का इस्तेमाल करेगी। grep कमांड का इस्तेमाल करें: अगर आप किसी ऐसी फ़ाइल की तलाश में हैं, जिसमें कोई खास केरेक्टर स्ट्रिंग या फ्रेज (phrase)  मौजूद है, तो आप grep कमांड का इस्तेमाल कर सकते हैं। एक बेसिक grep कमांड को इस तरह से फॉर्मेट किया जाता है:   grep -r -i "search query" /path/to/directory/     -r सर्च को "रिकर्सीव (recursive)" सेट करती है, इसलिए ये मौजूदा डाइरैक्टरी में और सारी सब-डाइरैक्टरीज में हर उस फ़ाइल के लिए सर्च करती है, जिसमें वो क्विरी स्ट्रिंग मौजूद हो।  -i दर्शाता है, कि क्विरी केस-सेंसिटिव नहीं है। अगर आप आपकी सर्च को केस के ऊपर ध्यान देने के लिए फोर्स करना चाहते हैं, तो -i ऑपरेटर को छोड़ दें। जब आप ऊपर की तरह grep सर्च परफ़ोर्म करते हैं, तब आपको मैचिंग क्विरी हाइलाइट होने के साथ में, टेक्स्ट के साथ में फ़ाइल का नाम नजर आएगा। आप मैचिंग टेक्स्ट को छिपा सकते हैं और इसे शामिल करके फ़ाइल नेम और पाथ्स को डिस्प्ले कर सकते हैं:   grep -r -i "search query" /path/to/directory/ | cut -d: -f1 grep कमांड जब करेक्ट पर्मिशन के बिना वाले किसी फोल्डर को एक्सेस करने की कोशिश करती है या खाली फोल्डर में जाती है, तब एक एरर देती है। आप इस एरर मैसेज को /dev/null में भेज सकते हैं, जो उन्हें आउटपुट में नजर आने से छिपा देगा।  grep -r -i "search query" /path/to/directory/ 2>/dev/null locate कमांड आमतौर पर किसी भी find कमांड से कहीं ज्यादा तेजी से काम करती है, ऐसा इसलिए क्योंकि ये आपके फ़ाइल स्ट्रक्चर के डेटाबेस के ऊपर काम करती है। सभी लिनक्स डिस्ट्रीब्यूशन पर locate फंक्शनैलिटी इन्स्टाल होकर नहीं आती हैं, इसलिए उसे इन्स्टाल करने के लिए, दी हुई कमांड एंटर करें:    sudo apt-get update टाइप करें और ↵ Enter प्रैस करें। आप इसे Debian और Ubuntu पर इस तरह से इन्स्टाल कर सकते हैं: sudo apt-get install mlocate टाइप करें और ↵ Enter प्रैस करें। अगर locate पहले से ही इन्स्टाल है, तो आप इस मैसेज mlocate is already the newest version को पाएँगे। Arch Linux में, पैकमेन पैकेज मैनेजर (pacman package manager) का इस्तेमाल करें : pacman -S mlocate  Gentoo के लिए, emerge का इस्तेमाल करें: emerge mlocate locate डेटाबेस को अपडेट कर लें: जब तक कि इसका डेटाबेस बिल्ट और अपडेट नहीं होगा, तब तक locate कमांड कुछ भी नहीं ढूंढ सकेगी। ये डेली ऑटोमेटिकली होता है, लेकिन आप उसे मेन्युअली भी अपडेट कर सकते हैं। अगर आप फौरन locate इस्तेमाल करना चाहते हैं, तो आपको ऐसा करने की जरूरत पड़ेगी।  sudo updatedb टाइप करें और ↵ Enter प्रैस करें। locate का इस्तेमाल करें: locate कमांड फास्ट है, लेकिन इसमें find कमांड जैसे कई सारे ऑप्शन्स नहीं होते हैं। आप बेसिक फ़ाइल सर्च को ठीक find कमांड की तरह ही परफ़ोर्म कर सकते हैं।  locate -i "*.jpg"    ये कमांड आपके पूरे सिस्टम में मौजूद .jpg एक्सटैन्शन वाली फाइल्स के लिए सर्च करेगी। वाइल्डकार्ड केरेक्टर * भी ठीक उसी तरह से काम करता है, जैसे कि find कमांड के साथ में करता है।  find कमांड की तरह ही, -i आपकी क्विरी के केस को इग्नोर करता है। अगर आपकी सर्च से कई सारे रिजल्ट्स सामने आ रहे हैं, जिन्हें संभालना मुश्किल हो रहा है, तो आप उन्हें -n ऑप्शन के साथ, उसके बाद में आप जितने रिजल्ट्स को डिस्प्ले करना चाहते हैं, उतने नंबर के साथ में कम कर सकते हैं।  locate -n 20 -i "*.jpg"    आपकी क्विरी से मैच करने वाले केवल पहले 20 रिजल्ट्स ही सामने डिस्प्ले होंगे। आप चाहें तो आसानी से स्क्रॉल करने के लिए, रिजल्ट्स को less में भेजने के लिए | पाइप का इस्तेमाल भी कर सकते हैं।
फ़ाइल को उसके फ़ाइल नेम से सर्च करें: सर्च को रूट डाइरैक्टरी (root directory) में स्टार्ट करें: आपकी क्विरी के हिस्से से मैच होता हुआ कुछ भी पाने के लिए वाइल्डकार्ड केरेक्टर . अपने सर्च रिजल्ट्स को आसानी से मैच होने लायक बनाएँ: खास तरह के रिजल्ट्स की तलाश करें: अपने रिजल्ट्स को साइज के हिसाब से फिल्टर करें: सर्च फिल्टर्स को कम्बाइन करने के लिए बुलियन ऑपरेटर्स (boolean operators) का इस्तेमाल करें: फाइल्स को ऑनर या पर्मिशन के जरिए सर्च करें: फाइल्स के मिल जाने के बाद एक्शन परफ़ोर्म करने के लिए कमांड्स को कम्बाइन करें: फाइल्स के अंदर मौजूद टेक्स्ट स्ट्रिंग के जरिए सर्च करने के लिए 
. एक्सट्रा टेक्स्ट को अलग कर दें: एरर मैसेज को छिपाएँ:  .locate फंक्शनैलिटी इन्स्टाल करें: अपने . सिम्पल सर्च परफ़ोर्म करने के लिए . अपने सर्च रिजल्ट्स को लिमिट करें:
https://www.wikihow.com/Find-a-File-in-Linux https://www.wikihow.com/Find-a-File-in-Linux https://www.wikihow.com/Find-a-File-in-Linux
Using "find" Searching for Text in Files Using "locate"