a magnifying glass searching through text

लिनक्स में फ़ाइलें कैसे खोजें: फाइंड और ग्रेप कमांड में महारत हासिल करें

इस लेख में आप सीखेंगे कि विभिन्न टूल का उपयोग करके लिनक्स में फ़ाइलें कैसे खोजें।

The “find” command cheatsheet

फ़ाइल नाम से खोज रहे हैं

“Find” is one of the most popular tools to search files in Linux. When you know the file name you can search for it using command below. Replace “/home” with a folder to search through and “filename.txt” with the file name.

$ ढूंढें /होम -नाम फ़ाइलनाम.txt

किसी फ़ाइल को बदलने के लिए वर्तमान फ़ोल्डर को खोजने के लिए

$ खोजें . -नाम दस्तावेज़.ज़िप
./Documents.zip

जब आप सटीक फ़ाइल नाम नहीं जानते हैं तो मिलान देखने के लिए रेगुलर एक्सप्रेशन का उपयोग करें। तारांकन चिह्न (*) चिह्न इसके बाद निर्धारित किसी भी वर्ण से मेल खाता है

$ ढूँढें /घर -नाम "दस्तावेज़*"
/home/eugen/Documents.zip
/होम/यूजीन/दस्तावेज़
/होम/यूजीन/फ़ोन/दस्तावेज़

संशोधन तिथि के अनुसार खोज रहे हैं

आज संशोधित की गई फ़ाइलों को खोजने के लिए जोड़ें

$ ढूंढें / होम -एमटाइम 0

उदाहरण के लिए आइए वे चित्र ढूंढें जिन्हें 10 दिन पहले संशोधित किया गया था:

$ चित्र ढूंढें/ -mtime 10
2023-11-03 10-29-49.png से चित्र/स्क्रीनशॉट/स्क्रीनशॉट

फ़ाइल प्रकार के आधार पर खोज रहे हैं

The “find” command in Linux allows you to search for files based on their type. Here are some examples:

निर्देशिकाएँ खोजें: किसी निर्दिष्ट पथ के भीतर सभी निर्देशिकाओं को खोजने के लिए, -type d विकल्प का उपयोग करें।

$ ढूंढें /होम-प्रकार डी

नियमित फ़ाइलें खोजें: इसके विपरीत, नियमित फ़ाइलों का पता लगाने के लिए -type f विकल्प का उपयोग करें।

$ ढूंढें /होम -प्रकार f -नाम "*.txt"

प्रतीकात्मक लिंक खोजें: प्रतीकात्मक लिंक खोजने के लिए, -type l विकल्प का उपयोग करें।

$ ढूँढें /होम -प्रकार एल -नाम "लिंकनाम"

विशिष्ट फ़ाइल एक्सटेंशन खोजें: फ़ाइल एक्सटेंशन निर्दिष्ट करके अपनी खोज को सीमित करें।

$ ढूँढें /होम -प्रकार f -नाम "*.jpg"

संयोजन मानदंड

आप अपनी खोजों को अधिक सटीक बनाने के लिए कई मानदंडों को जोड़ सकते हैं। यहाँ

विशिष्ट एक्सटेंशन वाली संशोधित फ़ाइलें खोजें: एक्सटेंशन के साथ पिछले 7 दिनों में संशोधित फ़ाइलें ढूंढें

$ ढूँढें /var/logs -प्रकार f -नाम "*.log" -mtime -7

दिनांक सीमा के बीच संशोधित फ़ाइलें खोजें: 1 नवंबर, 2023 और 5 नवंबर, 2023 के बीच संशोधित फ़ाइलों का पता लगाएं।

$ खोजें /होम-न्यूएर्मट 2023-11-01 ! -न्यूएरएमटी 2023-11-06

अतिरिक्त

मामले की संवेदनशीलता को नजरअंदाज करना: यदि आप चाहते हैं कि खोज केस-असंवेदनशील हो, तो -iname विकल्प का उपयोग करें।

$ ढूंढें / होम -नाम "दस्तावेज़*"

खोज की सीमित गहराई: -maxdepth विकल्प के साथ खोज की गहराई को एक विशिष्ट स्तर तक सीमित करें।

$ ढूंढें /होम -मैक्सडेप्थ 2 -नाम "*.txt"

विशिष्ट निर्देशिकाओं को छोड़कर: -not या ! का उपयोग करके अपनी खोज से कुछ निर्देशिकाओं को बाहर निकालें। विकल्प।

$ ढूँढें /होम -प्रकार f -नाम "*.txt" -नहीं -पथ "/home/user/exclude/*"

याद रखें, महारत हासिल करना

फ़ाइल सामग्री के आधार पर खोजें

जब फाइलों के भीतर विशिष्ट सामग्री खोजने की बात आती है, तो

मूल सामग्री खोज: किसी फ़ाइल में किसी विशिष्ट स्ट्रिंग को खोजने के लिए, निम्नलिखित सिंटैक्स का उपयोग करें

$ grep "search_string" फ़ाइल नाम

प्रतिस्थापित करें

एकाधिक फ़ाइलों में खोजें: यदि आप एकाधिक फ़ाइलों को खोजना चाहते हैं, तो एक वाइल्डकार्ड या एक विशिष्ट फ़ाइल पैटर्न प्रदान करें

$ grep "पैटर्न" /path/to/files/*.txt

केस-असंवेदनशील खोज: -i विकल्प के साथ अपनी खोज को केस-असंवेदनशील बनाएं

$ grep -i "पैटर्न" फ़ाइल नाम

लाइन नंबर प्रदर्शित करें: यदि आप उन पंक्ति संख्याओं को जानना चाहते हैं जहां पैटर्न पाया जाता है, तो -n विकल्प का उपयोग करें

$ grep -n "पैटर्न" फ़ाइल नाम

केवल फ़ाइल नाम प्रदर्शित करें: केवल पैटर्न वाली फ़ाइलों के नाम दिखाने के लिए, -l विकल्प का उपयोग करें

$ grep -l "पैटर्न" /path/to/files/*.txt

पुनरावर्ती रूप से खोजें: यदि आप किसी निर्देशिका और उसकी उपनिर्देशिकाओं की सभी फ़ाइलों में एक पैटर्न खोजना चाहते हैं, तो -r विकल्प का उपयोग करें

$ grep -r "पैटर्न" /पथ/से/निर्देशिका

फ़ाइलें या निर्देशिकाएँ बहिष्कृत करें: अपनी खोज से कुछ फ़ाइलों या निर्देशिकाओं को बाहर निकालें

$ grep "पैटर्न" --exclude=*.log /path/to/files/*

संपूर्ण शब्द खोजें: आंशिक मिलान को रोकते हुए, संपूर्ण शब्दों को खोजने के लिए -w विकल्प का उपयोग करें

$ grep -w "शब्द" फ़ाइल नाम

विकसित

उल्टे मिलान खोजें: -v विकल्प का उपयोग करके उन पंक्तियों को प्रदर्शित करने के लिए मिलान को उल्टा करें जिनमें निर्दिष्ट पैटर्न नहीं है

$ grep -v "पैटर्न" फ़ाइल नाम

मिलान मिलान: यदि आप जानना चाहते हैं कि कितनी पंक्तियों में पैटर्न है, तो -c विकल्प का उपयोग करें:

$ grep -c "पैटर्न" फ़ाइल नाम

केवल मेल खाने वाला पाठ प्रदर्शित करना: केवल वह टेक्स्ट दिखाएं जो -o विकल्प के साथ पैटर्न से मेल खाता हो:

$ grep -o "पैटर्न" फ़ाइल नाम

पंक्ति संख्याओं के साथ पुनरावर्ती खोज: व्यापक खोज के लिए विकल्पों को संयोजित करें, उदाहरण के लिए:

$ grep -r -n "पैटर्न" /पथ/से/निर्देशिका

में महारत हासिल करना

वैकल्पिक फ़ाइल खोज विधियाँ

शक्तिशाली के अलावा

पायथन स्क्रिप्ट का उपयोग करके फ़ाइलें ढूंढें

कभी-कभी, एक कस्टम पायथन स्क्रिप्ट फ़ाइल खोज में अधिक लचीलापन प्रदान कर सकती है। यहाँ ओएस और fnmatch मॉड्यूल:

आयात ओएस
से fnmatch आयात fnmatch

डीईएफ़ खोजें_फ़ाइलें(निर्देशिका, पैटर्न):
    के लिए रूट, डीआईआर, फ़ाइलें में ओएस.वॉक(निर्देशिका):
        के लिए फ़ाइल में फ़ाइलें:
            अगर fnmatch(फ़ाइल, पैटर्न):
                छपाई(os.path.join(रूट, फ़ाइल))

# Usage
ढूंढें_फ़ाइलें('/पथ/से/खोज', '*।TXT')

यह स्क्रिप्ट निर्देशिका और उसकी उपनिर्देशिकाओं के माध्यम से चलती है, निर्दिष्ट पैटर्न के आधार पर फ़ाइलों का मिलान करती है। अनुकूलित करें खोजें_फ़ाइलें आपके विशिष्ट खोज मानदंड के अनुरूप कार्य करें।

The “locate” Command

The “का पता लगाने” command is another efficient way to find files on a Linux system. It uses a pre-built index, making searches faster compared to the “find” command. However, keep in mind that the index needs regular updates to include recent changes.

लोकेट डेटाबेस को अद्यतन करें:

$ सुडो अपडेटेडबी

फ़ाइलें खोजें:

$ फ़ाइलनाम.txt का पता लगाएं

का उपयोग

अगर आप

निष्पादन योग्य स्थान खोजें:

$ जो निष्पादन योग्य_नाम है

का उपयोग करते हुए

The “fd” command is a fast and user-friendly alternative to “find.” It comes with a simplified syntax and colorized output.

एफडी स्थापित करें:

$ sudo apt-get install fd-find # For Ubuntu/Debian
$ sudo dnf install fd # For Fedora

फ़ाइलें खोजें:

$ fd दस्तावेज़ खोजें
फ़ोन/दस्तावेज़
दस्तावेज़
दस्तावेज़.ज़िप

कस्टम स्क्रिप्ट और उपनाम

अंत में, आप अपनी फ़ाइल खोज प्रक्रिया को सुव्यवस्थित करने के लिए कस्टम शेल स्क्रिप्ट या उपनाम बना सकते हैं। उदाहरण के लिए:

# Custom Alias
alias findtxt='find /path/to/search -name "*.txt"'

# Usage
$ findtxt

कस्टम स्क्रिप्ट और उपनाम आपको अपने वर्कफ़्लो को बढ़ाते हुए, अपनी विशिष्ट फ़ाइल खोज आवश्यकताओं के लिए शॉर्टकट बनाने की अनुमति देते हैं।

बैश स्क्रिप्ट का उपयोग करके लिनक्स में फ़ाइलें ढूंढें

बैश स्क्रिप्ट बनाने और उपयोग करने से लिनक्स में दोहराए जाने वाले फ़ाइल खोज कार्यों को स्वचालित करने में मदद मिलती है। नीचे एक सरल बैश स्क्रिप्ट का उदाहरण दिया गया है जो दिए गए पैटर्न के आधार पर फ़ाइलों की खोज करता है:

#!/bin/bash

# Bash script to find files based on a pattern

if [ $# -ne 2 ]; then
echo "Usage: $0 <directory> <pattern>"
exit 1
fi

directory=$1
pattern=$2

# Check if the directory exists
if [ ! -d "$directory" ]; then
echo "Error: Directory $directory not found."
exit 1
fi

# Use find command to search for files
find "$directory" -name "$pattern" -print

इस स्क्रिप्ट को एक फ़ाइल में सहेजें, उदाहरण के लिए, find_files.sh, और इसे निम्नलिखित कमांड के साथ निष्पादन योग्य बनाएं:

$ chmod x find_files.sh

अब, आप निर्देशिका और पैटर्न को तर्क के रूप में प्रदान करके फ़ाइलों को खोजने के लिए स्क्रिप्ट का उपयोग कर सकते हैं:

$ ./find_files.sh /path/to/search "*.txt"

यह स्क्रिप्ट जाँचती है कि क्या तर्कों की सही संख्या प्रदान की गई है और क्या निर्दिष्ट निर्देशिका मौजूद है। इसके बाद यह दिए गए पैटर्न के आधार पर फ़ाइलों को खोजने के लिए फाइंड कमांड का उपयोग करता है।

बोनस: लिनक्स में छवियों के माध्यम से कैसे खोजें

लिनक्स पर, छवि खोज के लिए कई उपकरण और विधियाँ हैं, जिनमें से प्रत्येक अद्वितीय सुविधाएँ और क्षमताएँ प्रदान करती हैं। यहां कुछ विकल्प दिए गए हैं:

“find” Command with File Type Filtering:

मानक

$ ढूँढें /पथ/से/छवियाँ -प्रकार f -नाम "*.jpg"

The “fdfind” Command:

The “fdfind” command, a fast and user-friendly alternative to “find,” can also be used to search for image files. Install it if you haven’t already:

$ sudo apt-get install fd-find # For Ubuntu/Debian
$ sudo dnf install fd # For Fedora

विशिष्ट एक्सटेंशन वाली छवियां खोजें:

$ fdfind -e jpg

The “locate” Command

The “locate” command can be used for quick searches, especially if an updated database is maintained:

$ '*.jpg' का पता लगाएं

हाल के परिवर्तनों के लिए लोकेट डेटाबेस को नियमित रूप से अपडेट करना याद रखें:

$ सुडो अपडेटेडबी

“grep” Command for Specific Image Names:

यदि आपके पास अपनी छवि फ़ाइलों के लिए एक विशिष्ट नामकरण परंपरा है, तो आप इसका उपयोग कर सकते हैं

$ grep -r 'पैटर्न' /पथ/से/छवियां

प्रतिस्थापित करें

“file” Command

The “file” command can identify file types, helping you filter out image files:

$ फ़ाइल /पथ/से/छवियाँ/*

उन पंक्तियों की तलाश करें जिनमें शामिल हैं

“feh” Image Viewer with Filelist

यदि आपके पास छवि फ़ाइलों की एक सूची है और आप उन्हें देखना चाहते हैं, तो

$ feh -f $(ढूंढें /path/to/images -type f -name "*.jpg")

यह निर्दिष्ट निर्देशिका में सभी JPEG फ़ाइलों की फ़ाइल सूची के साथ एक छवि व्यूअर खोलता है।

छवि मेटाडेटा उपकरण का उपयोग करना

यदि आपकी छवियों में मेटाडेटा है, तो आप जैसे टूल का उपयोग कर सकते हैं

$ exiftool -filename -r /path/to/images | ग्रेप 'search_term'

ग्राफ़िकल फ़ाइल प्रबंधक

नॉटिलस, डॉल्फिन, या थूनर जैसे ग्राफ़िकल फ़ाइल प्रबंधक अक्सर खोज कार्यक्षमताएँ प्रदान करते हैं। आप निर्देशिका पर नेविगेट कर सकते हैं और खोज बार का उपयोग कर सकते हैं।

टैग-आधारित छवि आयोजक

उपकरण जैसे

सारांश

अंत में, लिनक्स पर फ़ाइल खोज में महारत हासिल करने में विभिन्न कमांड, टूल और स्क्रिप्टिंग तकनीकों को समझना और संयोजित करना शामिल है। आप चाहे