लिनक्स एक निर्देशिका में सभी फाइलों को खोजता है। Linux में फ़ाइल कैसे ढूंढें. ऑपरेटरों का उपयोग करके खोज कमांड का उपयोग करने के उदाहरण


अद्यतन: 11/02/2019 प्रकाशित: 07/25/2016

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

सामान्य वाक्यविन्यास

खोजो<где искать> <опции>

<где искать> — रूट निर्देशिका का पथ जहां खोज शुरू करनी है। उदाहरण के लिए, उपयुक्त निर्देशिका में /home/user खोजें - खोजें। वर्तमान निर्देशिका के लिए आपको एक बिंदु "." का उपयोग करना होगा।

<опции> — नियमों का एक सेट जिसके द्वारा खोज की जाती है।

*डिफ़ॉल्ट रूप से, खोज पुनरावर्ती है। किसी विशिष्ट निर्देशिका में खोजने के लिए, आप विकल्प का उपयोग कर सकते हैं अधिकतम गहराई.

विकल्पों का विवरण

विकल्प विवरण
-नाम नाम से खोजें।
-मेरा बड़ा नाम है नाम से केस-असंवेदनशील खोज।
-प्रकार

वस्तु प्रकार खोजें. संभावित विकल्प:

  • एफ - फ़ाइल;
  • डी - निर्देशिका;
  • एल - लिंक;
  • पी - पाइप;
  • एस - सॉकेट.
-आकार वस्तु का आकार. इसे 512 बाइट्स के ब्लॉक में या केवल बाइट्स में (वर्ण "सी" के साथ) निर्दिष्ट किया गया है।
-mtime फ़ाइल संशोधन समय. दिनों में दर्शाया गया है।
-ममिन मिनटों में समय बदलें.
-एक वक़्त वस्तु तक अंतिम पहुंच का समय दिनों में.
-अमीन अंतिम कॉल का समय मिनटों में.
-समय दिनों में वस्तु के स्वामी या अधिकारों का अंतिम परिवर्तन।
-सीमिन अंतिम मालिक या अनुमति मिनटों में बदल जाती है।
-उपयोगकर्ता स्वामी द्वारा खोजें.
-समूह समूह द्वारा.
-पर्म कुछ पहुँच अधिकारों के साथ.
-गहराई खोज रूट से नहीं, बल्कि सबसे गहरी नेस्टेड निर्देशिका से शुरू होनी चाहिए।
-अधिकतम गहराई कैटलॉग में अधिकतम खोज गहराई. -मैक्सडेप्थ 0 - केवल वर्तमान निर्देशिका में खोजें। डिफ़ॉल्ट रूप से, खोज पुनरावर्ती होती है.
-कांट - छांट सूचीबद्ध निर्देशिकाओं को बाहर रखा गया है।
-माउंट अन्य फ़ाइल सिस्टम पर न जाएँ.
-रेगेक्स नियमित अभिव्यक्ति के साथ नाम से.
-regextype<тип> नियमित अभिव्यक्ति प्रकार.
-एल प्रतीकात्मक लिंक (सिम्बलिंक) की सामग्री दिखाता है।
-खाली खाली निर्देशिकाएँ खोजें.
-मिटाना जो मिला उसे मिटा दें.
-एल.एस ls -dgils के रूप में आउटपुट
प्रिंट दिखाओ क्या मिला.
-प्रिंट0 पाई गई वस्तुओं का पथ.
-निष्पादन<команда> {} \; पाए गए पर कमांड निष्पादित करें।
-ठीक है -exec निष्पादित करने से पहले एक संकेत जारी करें।

मौजूदा विकल्पों का पूरा सेट कमांड से प्राप्त किया जा सकता है आदमी ढूंढो.

खोज का उपयोग करने के उदाहरण

किसी फ़ाइल को नाम से खोजें

ढूंढें / -नाम "फ़ाइल.txt"

* इस उदाहरण में, नाम वाली एक फ़ाइल खोजी जाएगी फ़ाइल.txtरूट से शुरू होकर संपूर्ण फ़ाइल सिस्टम में / .

किसी फ़ाइल को उसके नाम के भाग से खोजना:

ढूंढें/-नाम "*.tmp"

* यह कमांड रूट डायरेक्टरी में सभी फ़ोल्डर्स या फाइलों को खोजेगा /, के साथ समाप्त हो रहा है .tmp

आरंभ होने वाली सभी फ़ाइलें या फ़ोल्डर ढूंढें सेस_और के साथ समाप्त करें सीडी

खोजो । -नाम "सेस_*" -ए -नाम "*सीडी"

* -ए:तार्किक तथा, -ओ:तार्किक या.

दिनांक के अनुसार खोजें

1. उन फ़ाइलों को खोजें जो एक निश्चित संख्या में दिन पहले बदल गई हैं:

खोजो । -टाइप एफ -एमटाइम +60

* यह कमांड उन फ़ाइलों को ढूंढेगा जिन्हें 60 दिन से अधिक पहले बदला गया है।

2. का उपयोग करके फ़ाइलें खोजें नई. यह विकल्प संस्करण 4.3.3 से उपलब्ध है (आप इसे कमांड से देख सकते हैं खोजें--संस्करण).

क) परिवर्तन की तिथि:

खोजो । -टाइप एफ -न्यूएर्मट "2019-11-02 00:00"

* उन सभी फ़ाइलों को दिखाएगा जो 11/02/2019 00:00 के बाद से बदल गई हैं।

खोजो । -टाइप एफ -न्यूएरएमटी 2019-10-31 ! -नवीनतम 2019-11-02

* वे सभी फ़ाइलें मिलेंगी जो 10/31/2019 और 11/01/2019 (समावेशी) के बीच बदली गई थीं।

बी) आवेदन की तिथि:

खोजो । -टाइप एफ -नवरात 2019-10-08

* 10/08/2019 से सभी फ़ाइलें एक्सेस की गईं।

खोजो । -टाइप एफ -नवरात 2019-10-01 ! -नवंबर 2019-11-01

* सभी फ़ाइलें अक्टूबर में एक्सेस की गईं।

ग) निर्माण की तिथि:

खोजो । -टाइप एफ -न्यूएरक्ट 2019-09-07

खोजो । -टाइप एफ -न्यूएरक्ट 2019-09-07 ! -newerct "2019-09-09 07:50:00"

* 09/07/2019 00:00:00 से 09/09/2019 07:50 तक बनाई गई फ़ाइलें

प्रकार

केवल वर्तमान निर्देशिका और उसके सभी उपफ़ोल्डरों में फ़ाइलें खोजें:

* एफ- केवल फ़ाइलें खोजें।

अनुमतियों के आधार पर खोजें

हम पढ़ने और लिखने के लिए हर चीज़ की तलाश कर रहे हैं:

ढूंढें/-पर्म 0666

हमें वे फ़ाइलें मिलती हैं जिन तक केवल स्वामी की पहुंच होती है:

ढूंढें/-पर्म 0600

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

ढूँढें / -प्रकार f -exec grep -i -H "सामग्री" () \;

* इस उदाहरण में, निर्देशिका में सभी फ़ाइलों के लिए एक पुनरावर्ती खोज की जाती है / और स्ट्रिंग वाले लोगों की एक सूची प्रदर्शित की जाती है सामग्री.

संशोधन तिथि के अनुसार क्रमबद्ध

ढूंढें /डेटा -प्रकार f -प्रिंटफ "%TY-%Tm-%Td %TT %p\n" | सॉर्ट -आर

* कमांड डायरेक्टरी में सभी फाइलें ढूंढेगा /डेटा, नाम में संशोधन तिथि जोड़ देगा और डेटा को नाम के अनुसार क्रमबद्ध कर देगा। परिणामस्वरूप, मुझे लगता है कि फ़ाइलें उसी क्रम में चलेंगी जिस क्रम में वे बदली गई थीं।

ढूंढें /home/user/* -type d -exec chmod 2700 () \;

* इस उदाहरण में हम सभी निर्देशिकाएँ खोज रहे हैं ( टाइप डी) निर्देशिका में /होम/उपयोगकर्ताऔर उनके लिए अधिकार निर्धारित करें 2700 .

अनुसूचित सफाई

टीम खोजोपुरानी फ़ाइलों को स्वचालित रूप से हटाने के लिए उपयोग करना सुविधाजनक है।

संपादन के लिए क्रॉन जॉब खोलें:

और जोड़:

0 0 * * * /bin/find /tmp -mtime +14 -exec rm() \;

* इस उदाहरण में हम निर्देशिका से सभी फ़ाइलें और फ़ोल्डर हटा रहे हैं /tmp,सौवां पुराना है 14 दिन. यह कार्य प्रतिदिन चलता है 00:00 .
* कमांड का उपयोग करके निष्पादन योग्य फ़ाइल खोजने का पूरा पथ देखें जो ढूंढे- विभिन्न UNIX प्रणालियों पर इसे विभिन्न स्थानों पर स्थित किया जा सकता है।

यह लेख "पुस्तक" का एक अंश है लिनक्स और यूनिक्स - शेल में प्रोग्रामिंग", डेविड टैन्सले।

मैंने संपादन थोड़ी जल्दी में किया; यदि आपको कोई टाइपो त्रुटि नज़र आती है, तो कृपया टिप्पणियों में लिखें।

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

यह अध्याय खोज कमांड का उपयोग करने से संबंधित निम्नलिखित विषयों को शामिल करता है:

कमांड विकल्प खोजें;

खोज आदेश के विभिन्न विकल्पों का उपयोग करने के उदाहरण;

Xargs का उपयोग करने और कमांड ढूंढने के उदाहरण एक साथ।

खोज कमांड की क्षमताएं व्यापक हैं, और प्रस्तावित विकल्पों की सूची बड़ी है। यह अध्याय उनमें से सबसे महत्वपूर्ण का वर्णन करता है। फाइंड कमांड डिस्क को भी खोज सकता है एनएफएस (नेटवर्क फ़ाइल सिस्टम- नेटवर्क फ़ाइल सिस्टम), बेशक, यदि आपके पास उचित अनुमतियाँ हैं। ऐसे मामलों में, कमांड आमतौर पर पृष्ठभूमि में चलता है क्योंकि निर्देशिका ट्री को ब्राउज़ करने में समय लगता है। खोज आदेश का सामान्य प्रारूप है:

खोजो पथ_नाम -विकल्प

कहाँ पथ_नाम- यह वह निर्देशिका है जहाँ से खोज शुरू करनी है। '.' वर्ण का उपयोग वर्तमान निर्देशिका को दर्शाने के लिए किया जाता है, / वर्ण मूल निर्देशिका है, और "~" वर्ण वह है जो वेरिएबल में संग्रहीत है। $घरवर्तमान उपयोगकर्ता की होम निर्देशिका।

2.1. कमांड विकल्प ढूंढें

आइए खोज कमांड के मुख्य विकल्पों के विवरण पर ध्यान दें।

नाम उन फ़ाइलों की खोज करें जिनके नाम किसी दिए गए पैटर्न से मेल खाते हैं

प्रिंट मानक आउटपुट में मिली फ़ाइलों का पूरा नाम लिखता है

उन फ़ाइलों की खोज करें जिनके लिए निर्दिष्ट एक्सेस मोड सेट है

प्रून इसका उपयोग फाइंड कमांड को पहले से ही पाए गए पथनाम पर पुनरावर्ती खोज करने से रोकने के लिए किया जाता है; यदि -गहराई विकल्प निर्दिष्ट है, तो -प्रून विकल्प को नजरअंदाज कर दिया जाता है

उपयोगकर्ता किसी निर्दिष्ट उपयोगकर्ता के स्वामित्व वाली फ़ाइलों की खोज करता है

समूह उन फ़ाइलों की खोज करें जो किसी दिए गए समूह से संबंधित हैं

एमटाइम -एन +एनउन फ़ाइलों को खोजें जिनकी सामग्री को (-) से कम या (+) से अधिक संशोधित किया गया है एनदिन पहले; -एटाइम और -सीटाइम विकल्प भी हैं, जो आपको अंतिम पढ़ने की तारीख और फ़ाइल विशेषताओं के अंतिम परिवर्तन की तारीख के अनुसार फ़ाइलों को खोजने की अनुमति देते हैं।

नोग्रुप किसी गैर-मौजूद समूह से संबंधित फ़ाइलों की खोज करें, जिसके लिए, दूसरे शब्दों में, फ़ाइल में कोई प्रविष्टि नहीं है /आदि/समूह

नौसर एक गैर-मौजूद उपयोगकर्ता के स्वामित्व वाली फ़ाइलों को ढूंढता है, जिसके लिए, दूसरे शब्दों में, फ़ाइल में कोई प्रविष्टि नहीं है /etc/passwd

नई फ़ाइलउन फ़ाइलों को खोजें जो निर्दिष्ट फ़ाइल के बाद बनाई गई हैं

किसी विशिष्ट प्रकार की फ़ाइलों के लिए खोज टाइप करें, अर्थात्: बी- विशेष ब्लॉक फ़ाइल; डी- कैटलॉग; साथ- विशेष प्रतीक फ़ाइल; पी- नामित पाइप; एल- प्रतीकात्मक लिंक; एस- सॉकेट; एफ- नियमित फ़ाइल

आकार एन उन फ़ाइलों को खोजें जिनका आकार है एनइकाइयाँ; माप की निम्नलिखित इकाइयाँ संभव हैं: बी- ब्लॉक आकार 512 बाइट्स (डिफ़ॉल्ट सेटिंग); साथ- बाइट; - किलोबाइट (1024 बाइट्स); डब्ल्यू- दो-बाइट शब्द

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

एफ प्रकार उन फ़ाइलों की खोज करता है जो एक विशिष्ट प्रकार की फ़ाइल प्रणाली में हैं; आमतौर पर प्रासंगिक जानकारी एक फ़ाइल में संग्रहीत होती है /etc/fstab, जिसमें स्थानीय कंप्यूटर पर उपयोग की जाने वाली फ़ाइल सिस्टम के बारे में डेटा शामिल है

माउंट केवल वर्तमान फ़ाइल सिस्टम में फ़ाइलों की खोज करता है; इस विकल्प के समतुल्य -xdev -exec विकल्प है एक दुभाषिया आदेश निष्पादित करें शंखसभी खोजी गई फ़ाइलों के लिए; निष्पादित आदेशों में प्रारूप कमांड ( ) है;

(अक्षरों () और 😉 के बीच के स्थान पर ध्यान दें

ठीक है -exec के समान, लेकिन कमांड निष्पादित करने से पहले एक संकेत प्रदर्शित करता है

2.1.1. विकल्प -नाम

फाइंड कमांड के साथ काम करते समय, -नाम विकल्प का सबसे अधिक उपयोग किया जाता है। उद्धरण चिह्नों में फ़ाइल नाम पैटर्न का पालन किया जाना चाहिए।
यदि आपको एक्सटेंशन वाली सभी फ़ाइलें ढूंढनी हैं। TXTअपनी होम निर्देशिका में, प्रतीक को पथनाम के रूप में निर्दिष्ट करें। प्रारंभिक निर्देशिका का नाम वेरिएबल से निकाला जाएगा $घर.

$ ढूंढें ~ -नाम "*.txt" -प्रिंट करें

एक्सटेंशन वाली सभी फ़ाइलें ढूंढने के लिए ।TXTवर्तमान निर्देशिका में स्थित, निम्न आदेश का उपयोग करें:

$खोजें। -नाम "*.txt" -प्रिंट

वर्तमान निर्देशिका में उन सभी फ़ाइलों को ढूंढने के लिए जिनके नाम में कम से कम एक अपरकेस वर्ण है, निम्न आदेश दर्ज करें:

$खोजें। -नाम प्रिंट

कैटलॉग में खोजें /वगैरहफ़ाइलें जिनके नाम वर्णों से शुरू होते हैं " मेज़बान", आदेश अनुमति देता है

$ ढूंढें /आदि -नाम "होट*" -प्रिंट

एक्सटेंशन वाली सभी फ़ाइलों के लिए प्रारंभिक निर्देशिका खोजें ।TXTसाथ ही वे फ़ाइलें जिनके नाम एक बिंदु से शुरू होते हैं, कमांड उत्पन्न करता है

$ ढूंढें ~ -नाम "*.txt" -प्रिंट -ओ -नाम ".*" -प्रिंट

विकल्प -ओतार्किक OR ऑपरेशन के लिए एक पदनाम है। यदि इसका उपयोग किया जाता है, तो नियमित नाम वाली फ़ाइलों के अलावा, ऐसी फ़ाइलें भी मिलेंगी जिनके नाम बिंदु से शुरू होते हैं।

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

$ ढूंढें / -नाम "*" -प्रिंट करें

निम्नलिखित दिखाता है कि उन सभी फ़ाइलों को कैसे ढूंढें जिनके नाम लोअरकेस वर्णों से शुरू होते हैं, उसके बाद दो नंबर और एक एक्सटेंशन होता है ।TXT(उदाहरण के लिए, akh37.xt):

$खोजें। -नाम » [ए-एक्स] [ए-एक्स] . txt" -प्रिंट करें

2.1.2. विकल्प -पर्म

-perm विकल्प आपको निर्दिष्ट एक्सेस मोड वाली फ़ाइलें ढूंढने की अनुमति देता है। उदाहरण के लिए, एक्सेस मोड वाली फ़ाइलों को खोजने के लिए 755 (कोई भी उपयोगकर्ता उन्हें देख और निष्पादित कर सकता है, लेकिन केवल मालिक को लिखने का अधिकार है) आपको निम्नलिखित कमांड का उपयोग करना चाहिए:

$खोजें। -पर्म 755 -प्रिंट

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

$खोजें। -पर्म -007 -प्रिंट

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

2.1.3. विकल्प -छँटाई

जब आप किसी विशेष निर्देशिका को खोजना नहीं चाहते हैं, तो -prune विकल्प का उपयोग करें। यह आपको वर्तमान पथनाम पर खोज बंद करने का निर्देश देता है। यदि पथनाम किसी निर्देशिका की ओर इंगित करता है, तो खोज आदेश उसमें नहीं जाएगा। यदि -गहराई विकल्प मौजूद है, तो -प्रून विकल्प को नजरअंदाज कर दिया जाता है।

निम्न आदेश उपनिर्देशिका में जाए बिना वर्तमान निर्देशिका को खोजता है /बिन:

$खोजें। -नाम "बिन" -प्रून -ओ -प्रिंट

2.1.4. विकल्प -उपयोगकर्ता और --nouser

किसी विशिष्ट उपयोगकर्ता के स्वामित्व वाली फ़ाइलों को ढूंढने के लिए, खोज कमांड में -user विकल्प निर्दिष्ट करें, उसके बाद उपयोगकर्ता नाम निर्दिष्ट करें। उदाहरण के लिए, उपयोगकर्ता के स्वामित्व वाली फ़ाइलों के लिए प्रारंभिक निर्देशिका खोजना डेव, निम्नलिखित कमांड का उपयोग करके किया जाता है:

$ ढूंढें ~ -उपयोगकर्ता डेव -प्रिंट

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

$ ढूंढें /आदि -uaer uucp -प्रिंट

-nouser विकल्प के लिए धन्यवाद, गैर-मौजूद उपयोगकर्ताओं से संबंधित फ़ाइलों को खोजना संभव है। इसका उपयोग करते समय, उन फ़ाइलों की खोज की जाती है जिनके मालिकों के पास फ़ाइल में कोई प्रविष्टि नहीं है /etc/passwd. किसी विशिष्ट उपयोक्तानाम को निर्दिष्ट करने की कोई आवश्यकता नहीं है; खोज आदेश स्वयं ही सभी आवश्यक कार्य करता है। उन सभी फ़ाइलों को ढूँढ़ने के लिए जो गैर-मौजूद उपयोगकर्ताओं के स्वामित्व में हैं और एक निर्देशिका में स्थित हैं /घर, यह आदेश दर्ज करें:

$ ढूंढें / होम -नोएर -प्रिंट

2.1.5. विकल्प -ग्रुप और -नोग्रुप

-ग्रुप और -नोग्रुप विकल्प समान हैं -समूह में उपयोगकर्ताओं के स्वामित्व वाली सभी फ़ाइलों के उपयोगकर्ता-नूसर/ऐप्स अधिनियम:

$ /arra -group accta -print ढूंढें

निम्न आदेश संपूर्ण सिस्टम में गैर-मौजूद समूहों से संबंधित फ़ाइलों की खोज करता है:

$ खोजें / -नोग्रुप -प्रिंट

2.1.6. विकल्प-एमटाइम

एक्सेस की गई फ़ाइलों को खोजते समय -mtime विकल्प का उपयोग किया जाना चाहिए एक्सदिन पहले। यदि विकल्प तर्क '-' चिह्न के साथ दिया गया है, तो जिन फ़ाइलों तक कुछ समय से पहुंच नहीं है, उनका चयन किया जाएगा। एक्सदिन. '+' चिह्न के साथ एक तर्क विपरीत परिणाम की ओर ले जाता है - उन फ़ाइलों का चयन किया जाता है जिन्हें अंतिम बार एक्सेस किया गया था एक्सदिन.

निम्नलिखित आदेश आपको उन सभी फ़ाइलों को ढूंढने की अनुमति देता है जिन्हें पिछले पांच दिनों में अपडेट नहीं किया गया है:

$ ढूंढें / -mtime -5 -प्रिंट करें

नीचे वह आदेश है जो निर्देशिका को खोजता है /var/admफ़ाइलें जो पिछले तीन दिनों के भीतर अद्यतन की गई हैं:

$ ढूंढें /var/adm -mtime +3 -प्रिंट

2.1.7. -नया विकल्प

यदि आपको उन फ़ाइलों को ढूंढने की ज़रूरत है जिन्हें दो निर्दिष्ट फ़ाइलों के अपडेट के बीच के समय में एक्सेस किया गया था, तो -newer विकल्प का उपयोग करें। इसके आवेदन का सामान्य प्रारूप इस प्रकार है:

नई पुरानी_फ़ाइल! -नया नई फ़ाइल

संकेत ' ! ' तार्किक निषेध संचालिका है। इसका मतलब है: ऐसी फ़ाइलें ढूंढें जो इससे नई हों पुरानी_फ़ाइल, लेकिन इससे भी पुराना नई फ़ाइल.

मान लीजिए कि हमारे पास दो फ़ाइलें हैं जिन्हें दो दिनों के अंतराल पर अपडेट किया गया था:

Rwxr-xr-x 1 रूट रूट 92 अप्रैल 18 11:18 आयु.awk
-rwxrwxr-x 1 रूट रूट 1054 अप्रैल 20 19:37 बेल्ट.awk

उन सभी फ़ाइलों को ढूँढने के लिए जिन्हें बाद में अद्यतन किया गया था उम्र.आक, लेकिन उससे भी पहले Belts.awk, निम्नलिखित कमांड चलाएँ (-exec विकल्प का उपयोग नीचे वर्णित है):

$खोजें। -नया जमाना.अरे! -नए बेल्ट.awk -exec Is -1() ;
-rwxrwxr-x 1 रूट रूट 62 अप्रैल 18 11:32 ./who.awk
-rwxrwxr-x 1 रूट रूट 49 अप्रैल 18 12:05 ./group.awk
-आरडब्ल्यू-आर-आर- 1 रूट रूट 201 अप्रैल 20 19:30 ./ग्रेड2.txt
-rwxrwxr-x 1 रूट रूट 1054 अप्रैल 20 19:37 ./belts.awk

लेकिन क्या होगा यदि आपको पिछले दो घंटों के भीतर बनाई गई फ़ाइलों को ढूंढने की ज़रूरत है, लेकिन आपके पास तुलना करने के लिए ठीक दो घंटे पहले बनाई गई फ़ाइल नहीं है? ऐसी फ़ाइल बनाएं! कमांड Touch -t इस उद्देश्य के लिए है, जो MMDChhmm (महीना-दिन-घंटे-मिनट) प्रारूप में दिए गए टाइमस्टैम्प के साथ एक फ़ाइल बनाता है। उदाहरण के लिए:

$ टच-टी 05042140 डीस्टैम्प
$ls -1 डीस्टैम्प
-आरडब्ल्यू-आर-आर- 1 डेव एडमिन 0 4 मई 21:40 डीस्टैम्प

परिणाम एक फ़ाइल होगी जिसकी निर्माण तिथि 4 मई है, निर्माण समय -21:40 (यह मानते हुए कि वर्तमान समय 23:40 है)। अब आप पिछले दो घंटों के भीतर अपडेट की गई सभी फ़ाइलों को ढूंढने के लिए -newer विकल्प के साथ फाइंड कमांड का उपयोग कर सकते हैं:

$खोजें। -नया डेटाएम्प -प्रिंट

2.1.8. विकल्प -प्रकार

ओएस यूनिक्सऔर लिनक्सविभिन्न फ़ाइल प्रकारों का समर्थन करें। वांछित प्रकार की फ़ाइलें ढूंढना -type विकल्प के साथ खोज कमांड का उपयोग करके किया जाता है। उदाहरण के लिए, किसी निर्देशिका में सभी उपनिर्देशिकाएँ ढूँढ़ना /वगैरहइस आदेश का उपयोग करें:

$ ढूंढें /आदि -प्रकार डी -प्रिंट

सभी फ़ाइलों को सूचीबद्ध करने के लिए, लेकिन निर्देशिकाओं को नहीं, निम्नलिखित कमांड चलाएँ:

$खोजें। ! -टाइप डी -प्रिंट

नीचे वह आदेश है जो किसी निर्देशिका में सभी प्रतीकात्मक लिंक ढूंढने के लिए डिज़ाइन किया गया है /वगैरह.

$ ढूंढें /आदि -टाइप 1 -प्रिंट करें

2.1.9. विकल्प -आकार

खोज प्रक्रिया के दौरान, फ़ाइल का आकार -आकार विकल्प का उपयोग करके निर्दिष्ट किया जाता है एन, कहाँ एन- 512 बाइट्स के ब्लॉक में फ़ाइल का आकार। संभावित तर्कों के निम्नलिखित अर्थ हैं: +एन- उन फ़ाइलों की खोज करें जिनका आकार निर्दिष्ट आकार से बड़ा है, -एन- निर्दिष्ट से कम, एन- दिए गए के बराबर। यदि तर्क अतिरिक्त रूप से प्रतीक निर्दिष्ट करता है साथ, तो आकार बाइट्स में निर्दिष्ट माना जाता है, ब्लॉक में नहीं, और यदि चरित्र - किलोबाइट में. उन फ़ाइलों को खोजने के लिए जिनका आकार 1 एमबी से अधिक है, कमांड का उपयोग करें

$खोजें। -aize -flOOOK -प्रिंट

निम्न आदेश निर्देशिका को खोजता है /होम/अपाचेफ़ाइलें जिनका आकार बिल्कुल 100 बाइट्स है:

$ खोजें /होम/अपाचे -सिक्स 100एस -प्रिंट

निम्नलिखित कमांड आपको 10 ब्लॉक (5120 बाइट्स) से बड़ी फ़ाइलों को खोजने की अनुमति देता है:

$खोजें। -आकार +10 -प्रिंट

2.1.10. विकल्प विकल्प -गहराई

-डेप्थ विकल्प आपको खोज को इस तरह से व्यवस्थित करने की अनुमति देता है कि वर्तमान निर्देशिका की सभी फाइलें (और पुनरावर्ती रूप से इसकी सभी उपनिर्देशिकाएं) पहले जांची जाती हैं, और केवल अंत में - निर्देशिका की प्रविष्टि ही जांची जाती है। सीपीआईओ या टार कमांड का उपयोग करके टेप पर संग्रहीत की जाने वाली फ़ाइलों की सूची बनाते समय इस विकल्प का व्यापक रूप से उपयोग किया जाता है, क्योंकि इस मामले में निर्देशिका छवि पहले टेप पर लिखी जाती है और उसके बाद ही उस तक पहुंच अधिकार सेट किए जाते हैं। यह उपयोगकर्ता को उन निर्देशिकाओं को संग्रहीत करने की अनुमति देता है जिनके लिए उसके पास लिखने की अनुमति नहीं है।
निम्न आदेश वर्तमान निर्देशिका की सभी फ़ाइलों और उपनिर्देशिकाओं को सूचीबद्ध करता है:

$खोजें। -नाम "*" -प्रिंट -ओ -नाम ".*" -प्रिंट -गहराई

उसके कार्य के परिणाम इस प्रकार दिख सकते हैं:

./.Xdefaults ./.bash_logout ./.bash_profile ./.bashrc ./.bash_nistory ./file ./Dir/filel ./Dir/file2 ./Dir/file3 ./Dir/Subdir/file4 ./Dir/Subdir ./निदेशक

2.1.11. -माउंट विकल्प

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

$ खोजें / -नाम "*.XC" -माउंट -प्रिंट

2.1.12. फ़ाइलों को खोजना और फिर cpio कमांड का उपयोग करके उन्हें संग्रहीत करना

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

यहां निर्देशिका सामग्री को टेप में रिकॉर्ड करने का तरीका बताया गया है /वगैरह, /घरऔर /ऐप्स:

$सीडी/
$ खोजें आदि होम एप -गहराई -प्रिंट | सीपीआईओ -ओवी > डेव/आरएमटीओ

विकल्प -ओसीपीआईओ कमांड टेप में फ़ाइलें लिखने के लिए मोड निर्दिष्ट करता है। विकल्प -v (वाचाल- मौखिक मोड) संसाधित होने वाली प्रत्येक फ़ाइल की रिपोर्ट करने के लिए सीपीआईओ कमांड को एक निर्देश है।

कृपया ध्यान दें कि निर्देशिका नामों में अग्रणी '/' वर्ण नहीं है। इस तरह, संग्रहीत निर्देशिकाओं के सापेक्ष पथ नाम सेट किए जाते हैं, जो बाद में संग्रह से फ़ाइलों को पढ़ते समय, उन्हें ऑपरेटिंग सिस्टम के किसी भी हिस्से में फिर से बनाने की अनुमति देगा, न कि केवल रूट निर्देशिका में।

2.1.13. विकल्प -exec और -ok

आइए मान लें कि आपको वे फ़ाइलें मिल गई हैं जिनकी आपको आवश्यकता है और आप उन पर कुछ कार्रवाई करना चाहते हैं। इस मामले में, आपको -exec विकल्प की आवश्यकता होगी (कुछ सिस्टम केवल ls या ls -1 कमांड को -exec विकल्प के साथ निष्पादित करने की अनुमति देते हैं)। कई उपयोगकर्ता पुरानी फ़ाइलों को हटाने के लिए खोजने के लिए -exec विकल्प का उपयोग करते हैं। मैं यह सुनिश्चित करने के लिए rm के बजाय ls चलाने की सलाह देता हूं कि खोज कमांड उन फ़ाइलों को ढूंढ ले जिन्हें आप हटाना चाहते हैं।

-exec विकल्प के बाद, निष्पादित किए जाने वाले कमांड को निर्दिष्ट करें, उसके बाद घुंघराले ब्रेसिज़, एक स्पेस, एक बैकस्लैश और अंत में एक अर्धविराम निर्दिष्ट करें। आइए एक उदाहरण देखें:

$खोजें। -प्रकार f -exec Xa -1() ;
-rwxr-xr-x 10 रूट व्हील 1222 जनवरी 4 1993 ./sbin/C80
-rwxr-xr-x 10 रूट व्हील 1222 जनवरी 4 1993 ./sbin/सामान्य
-rwxr-xr-x 10 रूट व्हील 1222 जनवरी 4 1993 ./sbin/Rewid

यह नियमित फ़ाइलों की खोज करता है, जिनकी एक सूची ls -1 कमांड का उपयोग करके स्क्रीन पर प्रदर्शित होती है।

उन फ़ाइलों को ढूँढ़ने के लिए जिन्हें किसी निर्देशिका में अद्यतन नहीं किया गया है /लॉगपिछले पाँच दिनों के भीतर, और उन्हें हटाएँ, निम्न आदेश चलाएँ:

$ ढूंढें /लॉग करें" -प्रकार f -mtime +5 -exec rm() ;

फ़ाइलों को स्थानांतरित करते या हटाते समय आपको सावधान रहना चाहिए। -ओके विकल्प का उपयोग करें, जो आपको एमवी और आरएम कमांड को सुरक्षित मोड में चलाने की अनुमति देता है (अगली फ़ाइल को संसाधित करने से पहले आपको पुष्टि के लिए संकेत दिया जाएगा)। निम्नलिखित उदाहरण में, फाइंड कमांड एक्सटेंशन वाली फाइलें ढूंढता है ।लकड़ी का लट्ठा, और यदि कोई फ़ाइल पांच दिन से अधिक समय पहले बनाई गई थी, तो यह उसे हटा देता है, लेकिन पहले आपसे इस ऑपरेशन की पुष्टि करने के लिए कहता है:

$खोजें। -नाम "*.लॉग" -एमटाइम +5 -ओके आरएम () ;
< rm … ./nets.LOG >? पर

किसी फ़ाइल को हटाने के लिए, दर्ज करें पर, और इस कार्रवाई को रोकने के लिए - एन.

2.1.14. खोज आदेश का उपयोग करने के अतिरिक्त उदाहरण

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

$ ढूंढें ~ -प्रिंट करें

वे सभी फ़ाइलें ढूंढें जिनके लिए बिट सेट है SUID, निम्न आदेश अनुमति देता है:

$खोजें। -टाइप एफ -पर्म +4000 -प्रिंट

खाली फ़ाइलों की सूची प्राप्त करने के लिए, इस आदेश का उपयोग करें:

$ ढूंढें / -प्रकार f -आकार 0 -exec -1 () है;

मेरा एक सिस्टम हर दिन एक सिस्टम ऑडिट लॉग बनाता है। लॉग फ़ाइल नाम में एक नंबर जोड़ा जाता है, जो आपको तुरंत यह निर्धारित करने की अनुमति देता है कि कौन सी फ़ाइल बाद में बनाई गई थी और कौन सी पहले बनाई गई थी। उदाहरण के लिए, फ़ाइल संस्करण व्यवस्थापक.लॉगक्रमानुसार क्रमांकित: admin.log.001, admin.log.002वगैरह। नीचे फाइंड कमांड है जो सभी फाइलों को हटा देता है व्यवस्थापक.लॉगसात दिन से अधिक पहले बनाया गया:

$ ढूंढें /लॉग -नाम 'admin.log.1 -atima +7 कार्यकारी आरएम () ;

2.2. xargs टीम

-exec विकल्प के साथ, फाइंड कमांड सभी मिली फाइलों को निर्दिष्ट कमांड में भेजता है, जिन्हें एक समय में संसाधित किया जाता है। दुर्भाग्यवश, कुछ प्रणालियों पर कमांड लाइन की लंबाई सीमित है, इसलिए बड़ी संख्या में फ़ाइलों को संसाधित करते समय आपको एक त्रुटि संदेश प्राप्त हो सकता है जो आमतौर पर पढ़ता है: "बहुत ज़्यादा बहस"(बहुत सारे तर्क) या "तर्क बहुत लंबे हैं"(तर्कों की बहुत बड़ी सूची)। इस स्थिति में, xargs कमांड बचाव के लिए आता है। यह खोज कमांड से प्राप्त फ़ाइलों को एक साथ संसाधित करने के बजाय टुकड़ों में संसाधित करता है।

एक उदाहरण पर विचार करें जिसमें फाइंड कमांड सिस्टम पर मौजूद सभी फाइलों की एक सूची लौटाता है, और xargs कमांड उन पर फाइल कमांड चलाता है, प्रत्येक फाइल के प्रकार की जांच करता है:

$ ढूंढें/-प्रकार एफ-प्रिंट I xarge.फ़ाइल
/etc/प्रोटोकॉल: अंग्रेजी पाठ /etc/securetty: ASCII पाठ

नीचे एक उदाहरण दिया गया है जो उन डंप फ़ाइलों की खोज को दर्शाता है जिनके नाम इको कमांड एक फ़ाइल में डालता है /tmp/core.log.

$ खोजें / -नाम कोर -प्रिंट | xarge इको > /tmp/core.log

निम्नलिखित उदाहरण में, निर्देशिका में /एप्स/ऑडिटउन सभी फ़ाइलों की खोज करता है जिन तक अन्य उपयोगकर्ताओं की पूर्ण पहुंच है। Chmod कमांड उनके लिए लिखने की अनुमति हटा देता है:

$ खोजें /appe/audit -perm -7 -print | xarge chmod ओ-डब्ल्यू

हमारी सूची को पूर्णांकित करना एक उदाहरण है जिसमें grep कमांड "शब्द वाली फ़ाइलों की खोज करता है उपकरण«:

$ ढूंढें/-प्रकार एफ-प्रिंट | xarge grep "डिवाइस"

2.3. निष्कर्ष

विभिन्न प्रकार के मानदंडों का उपयोग करके विभिन्न फ़ाइलों को खोजने के लिए फाइंड कमांड एक उत्कृष्ट उपकरण है। -exec विकल्प के साथ-साथ xargs कमांड के लिए धन्यवाद, पाई गई फ़ाइलों को लगभग किसी भी सिस्टम कमांड द्वारा संसाधित किया जा सकता है।

आप निम्नलिखित समस्या से परिचित हो सकते हैं: आपको कोई फ़ाइल नहीं मिल रही है, लेकिन यह कंप्यूटर पर कहीं है। तब फाइंड कमांड सुविधाजनक है।

आप पूछते हैं: इसका उपयोग कैसे करें? इस कार्यक्रम के लिए एक विशाल मैन पेज है, हम कुछ सामान्य मामलों को देखेंगे।

आप सबसे सरल से शुरुआत कर सकते हैं: यदि आप फ़ाइल का नाम जानते हैं, तो आप इसे आसानी से पा सकते हैं! आपको बस ढूँढना टाइप करना है और एक विशिष्ट फ़ाइल नाम निर्दिष्ट करना है!

लिनक्स फाइलों को नाम से खोजें

यह वही सरल आदेश है:

खोजो -नाम प्यार
यदि "लव" नाम की कोई फ़ाइल है तो फाइंड कमांड फ़ाइल या इस तरह की कई फ़ाइलों का पता लगाएगा:

Jzb@kodos:~$ ढूंढें -नाम प्यार ./projects/love jzb@kodos:~$
उदाहरण के लिए, हम एमपी3 प्रारूप में सभी फाइलों की खोज करेंगे और फ़ाइल में एक पूरी सूची बनाएंगे:

फ़ाइल /home/artix -iname ".mp3" > ./list.txt

फ़ाइलों को उनके नाम के भाग के आधार पर खोजें

इसके बाद, हमें txtx प्रारूप में फ़ाइलें मिलेंगी, न केवल फ़ाइलें, बल्कि टेक्स्ट फ़ाइलें जिनमें "LEON" शब्द शामिल है:

फ़ाइल /home/artix -iname ".txt" -exec grep -H "LEON" "()" \; > ./list.txt
बढ़िया, हमारे पास पहले से ही है यह शब्द के साथ लिनक्स फ़ाइलों की खोज करता है"लियोन"। इसी तरह, आप पृष्ठभूमि में अनावश्यक चीज़ों को हटा सकते हैं, ताकि आप काम करना जारी रख सकें:

फ़ाइल /home/artix -iname ".bak" -exec rm "()" \; &
इससे हमारा जीवन आसान हो जाता है. ये सबसे सरल चीजें हैं, लेकिन इनमें बहुत सारी उपयोगी चीजें हैं।

लिनक्स तिथि के अनुसार फ़ाइलें खोजें

खोजें ./ -mmin -10 #संशोधन तिथि 10 मिनट से कम खोजें ./ -mtime +1 #संशोधन तिथि 24 घंटे से अधिक खोजें ./ -प्रकार f -atime +10 # पहुंच समय 10 दिन से अधिक खोजें ./ -प्रकार f -amin - 10 #संशोधन तिथि अंतिम 10 मिनट

Linux फ़ाइलों में टेक्स्ट ढूँढना

अक्सर ऐसा होता है कि आपको Linux फ़ाइलों में टेक्स्ट खोजने की आवश्यकता होती है। मैं फ़ाइलों को खोजने के 2 उदाहरण दूंगा: (linux, freebsd) आपको फ़ाइलों में पाठ के एक टुकड़े की आवश्यकता है:

# ढूंढें /var/named/ -type f -exec grep "MX" () \; सर्वरनेटवर्क.जानकारी। 14400 आईएन एमएक्स 10 मेल
एक और:

# grep -rl "MX" /var/named/ /var/named/serversnetwork.info.db

आकार के अनुसार फ़ाइलें खोजें
कभी-कभी, आप लिनक्स फ़ाइलों को खोजने के लिए अन्य कमांड का उपयोग कर सकते हैं। उदाहरण के लिए, आपने देखा कि कैसे आपके कंप्यूटर पर कुछ सेक्शन का वॉल्यूम बढ़ने लगा। यह पता लगाने के लिए कि यह किस फ़ाइल से संबद्ध है, या कौन सा फ़ोल्डर भरा हुआ है, आप निम्न कमांड का उपयोग कर सकते हैं:

खोजें-आकार 95k.
इससे 95k आकार की फ़ाइलें मिलेंगी। लेकिन इस विकल्प का इस्तेमाल बहुत ही कम किया जाता है. वे अधिकतर कमांड का उपयोग करते हैं जिनका उपयोग निर्दिष्ट आकार से बड़ी या छोटी फ़ाइल को खोजने के लिए किया जा सकता है। उदाहरण के लिए, विकल्प:

खोजें -आकार +150k
ऐसी फ़ाइलें दिखानी चाहिए जो 150k से बड़ी हों। और विकल्प

खोजें -आकार -94k
जो भी 94K से कम है।

-आकार फ़ंक्शन निर्दिष्ट आकार की फ़ाइलों की खोज करता है और निष्पादित होने पर इस तरह दिखता है:

$खोजें। -आकार 3500k -प्रिंट
इस विकल्प लिनक्स में फ़ाइलें खोजेगा और उन्हें स्क्रीन पर प्रदर्शित करेगाजिनका आकार 3500 किलोबाइट है, जो इस फ़ोल्डर में स्थित हैं। यदि आपको 250 किलोबाइट से छोटी फ़ाइलें ढूँढने की आवश्यकता है, तो कमांड इस तरह दिखाई देगी:

$खोजें। -आकार -200k -प्रिंट
यदि आपको ऐसी फ़ाइलें ढूंढनी हैं जिनका आकार 555 मेगाबाइट से बड़ा है, तो हम विकल्प का उपयोग करेंगे:

$ खोजें / -आकार +555एम -प्रिंट
शायद यहीं पर मैं अपना लेख लिखना समाप्त करूंगा।

अब आप स्वयं फ़ाइलें खोजने, Linux फ़ाइलों में टेक्स्ट खोजने, तिथि के अनुसार फ़ाइलें खोजने में सक्षम हो सकते हैं!

सभी को धन्यवाद, अलविदा!

निर्देशिका में एक निश्चित वाक्यांश वाली फ़ाइलें ढूंढना आवश्यक है। इसे कैसे करना है? मुझे लगता है कि बहुत से लोगों को एक से अधिक बार इसी तरह की समस्या का सामना करना पड़ा है, जैसे कि फ़ाइलों वाले फ़ोल्डर में फ़ाइल ढूंढने की आवश्यकता (और कभी-कभी सबफ़ोल्डर जिसमें खोजना भी अच्छा होगा) इसके पाठ का एक टुकड़ा जानना (ठीक है, या) इसके बारे में अनुमान लगाना)। मैं भी, कई बार इस आवश्यकता पर लड़खड़ाया और अंततः इस तक पहुँच गया और एक छोटी बैश स्क्रिप्ट लिखी जो इस कार्य को करती है। सबसे आम कार्य नहीं है, लेकिन अभी भी हो रहा है, किसी प्रोग्राम की निष्पादन योग्य फ़ाइल की खोज करना। यह प्रोग्राम का नाम एक पैरामीटर के रूप में लेता है, और निष्पादन के बाद यह टर्मिनल में एक साथ फ़ाइलों के स्थान के साथ एक सूची प्रदर्शित करता है। कभी-कभी आपको ऐसी फ़ाइल ढूंढने की आवश्यकता हो सकती है जिसमें एक निश्चित पंक्ति हो या फ़ाइल में एक पंक्ति ढूंढनी हो जिसमें वांछित शब्द हो। लिनक्स पर, यह सब एक बहुत ही सरल, लेकिन साथ ही शक्तिशाली उपयोगिता, grep का उपयोग करके किया जाता है। इसकी मदद से आप न केवल फाइलों में लाइनें खोज सकते हैं, बल्कि कमांड के आउटपुट को फिल्टर भी कर सकते हैं और भी बहुत कुछ।

अक्सर ऐसी स्थितियाँ उत्पन्न होती हैं जब आपको कोई पाठ ढूँढ़ने की आवश्यकता होती है, लेकिन आपको यह याद नहीं रहता कि उसमें कौन सी फ़ाइल/फ़ाइलें हैं। इसकी लोकप्रियता का रहस्य इसकी शक्ति है; यह उपयोगकर्ताओं को जटिल नियमों के आधार पर टेक्स्ट को सॉर्ट और फ़िल्टर करने की अनुमति देता है।

ग्रेप कमांड (ग्लोबल रेगुलर एक्सप्रेशन प्रिंट के लिए है) लिनक्स टर्मिनल में सबसे लोकप्रिय कमांड में से एक है और जीएनयू प्रोजेक्ट का हिस्सा है।

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

grep -r -n "पाठ" /पथ

grep -r "खोज स्ट्रिंग"
grep -rl $"\xEF\xBB\xBF"

कहाँ:
-n वह रेखा दिखाता है जहां टुकड़ा पाया गया था;
-r /पथ निर्देशिका की फ़ाइलों और उसकी उपनिर्देशिकाओं में पुनरावर्ती रूप से खोज करता है;

आप चारों ओर (जो मिली है उसके ऊपर और नीचे) +- 3 पंक्तियाँ देखने के लिए -C 3 विकल्प भी जोड़ सकते हैं।

सभी लिनक्स-जैसे ऑपरेटिंग सिस्टम में किसी फ़ाइल को उसकी सामग्री द्वारा ढूंढने के लिए, बस खोज उपयोगिता का उपयोग करें।

खोज आदेश के साथ फ़ाइल सामग्री द्वारा लिनक्स खोज

जब फ़ाइलें ढूंढने की बात आती है तो फाइंड कमांड एक प्रकार का स्विस सेना चाकू है। ध्यान दें कि इसमें कई विकल्प हैं जो खोज तंत्र को मौलिक रूप से बदल सकते हैं। हम केवल बुनियादी सिद्धांतों की रूपरेखा तैयार करेंगे, और कमांड सहायता में बाकी क्षमताओं की जांच करेंगे। खोज का उपयोग करने का मूल सिद्धांत एक खोज फ़ोल्डर और विकल्प निर्दिष्ट करना है। उदाहरण के लिए, अभिव्यक्ति "ढूंढें ~/ -नाम *.cpp" उन फ़ाइलों की खोज करेगी जिनकी उपयोगकर्ता की व्यक्तिगत निर्देशिका में स्थित सभी निर्देशिकाओं में निरंतरता "cpp" है।

/usr/bin/find /folder -type f -exec grep -H "खोज स्ट्रिंग" () ;

-नाम विकल्प के बाद निर्दिष्ट मान फ़ाइल नाम मैपिंग पैटर्न निर्दिष्ट करता है। आप फ़ाइल प्रकार को निर्दिष्ट करने के लिए -प्रकार विकल्प का उपयोग कर सकते हैं, जहां आपको मूल्य संपत्ति में विशेष अक्षरों का उपयोग करने की आवश्यकता है: निर्देशिका के लिए डी, फ़ाइल के लिए एफ, प्रतीकात्मक लिंक के लिए एल, आदि। -उपयोगकर्ता, -समूह और -आकार फ़ंक्शन भी काफी उपयोगी हैं. उनके मान उपयोगकर्ता नाम, श्रेणी नाम और बाइट्स में फ़ाइल आकार हैं।

/var/www/ -नाम "file.conf" ढूंढें
/var/www/ -नाम "*.conf" ढूंढें

-exec विकल्प के समर्थन से, प्रत्येक फ़ाइल में यादृच्छिक प्रसंस्करण जोड़ा जा सकता है जिसका मिलान किया जाना है। इस प्रकार, फ़ाइल नाम और कवर किए गए नाम दोनों के आधार पर खोजना संभव हो जाता है। नीचे -exec फ़ंक्शन का उपयोग करके खोज और grep के संयोजन का एक उदाहरण दिया गया है।

खोजें ~/-नाम *.cpp
ढूंढें ~/ -नाम *.cpp -उपयोगकर्ता "मेरा-उपयोगकर्ता नाम" -समूह "मेरा-समूह"
खोजें ~/ -name "*.config" -type f -exec grep "user"() \;
/home/ ढूंढें (-नाम "*.php" -या -नाम "*.html" -या -नाम "*.js")
-exec grep -lHEi $"\xEF\xBB\xBF" () ;

और शायद इससे भी सरल

लिनक्स किस कमांड के साथ फ़ाइल सामग्री द्वारा खोजता है

कौन सा कमांड केवल उन फाइलों की खोज करता है जिन्हें प्रोग्राम के रूप में निष्पादित करने का अधिकार है। खोज PATH पर्यावरण चर में निर्दिष्ट निर्देशिकाओं में की जाती है। PATH वैरिएबल की सामग्री अलग-अलग उपयोगकर्ताओं के लिए भिन्न हो सकती है। यथासंभव अधिक से अधिक सिस्टम निर्देशिकाओं को कवर करने के लिए, आपको एक व्यवस्थापक खाते से लॉग इन करना होगा।

कौन सी बिल्ली
/बिन/बिल्ली
कौन सा डोकर-स्टैक
/home/username/.local/bin/docker-stack

लिनक्स लोकेट कमांड के साथ फ़ाइल सामग्री की खोज करता है

लोकेट कमांड द्वारा की गई खोज बहुत तेज़ है। हालाँकि, ध्यान रखें कि ऑपरेशन के समय सिस्टम डेटाबेस लाइव नहीं हो सकता है। फ़ाइल सिस्टम को स्कैन करने का तंत्र, इसमें लगने वाला समय और, सामान्य तौर पर, ऐसे उपकरण की उपलब्धता विभिन्न लिनक्स वितरणों में भिन्न हो सकती है। लोकेट कमांड केवल तभी उपयोगी होता है जब किसी फ़ाइल को उसके नाम से खोजा जाता है। हालाँकि, आवश्यक डेटा की उपस्थिति के लिए दस्तावेज़ों की पाठ्य सामग्री की जाँच करने के लिए, आपको किसी अन्य टूल का उपयोग करने की आवश्यकता है।

लोकेट कमांड ढूँढने का एक विकल्प प्रतीत होता है।

यह टीम, एक नियम के रूप में, तेजी से काम करती है और आसानी से खोज सकती है (व्यापक अर्थ में - कुछ हासिल करने की इच्छा, कुछ खोजने की इच्छा; नए या खोए हुए (भूल गए) प्राप्त करने के उद्देश्य से विषय की गतिविधियाँ: नई जानकारी (सूचना खोज), डेटा ) संपूर्ण फ़ाइल सिस्टम में। लिनक्स में एक विशेष grep कमांड है जो एक खोज पैटर्न और एक फ़ाइल नाम (भंडारण माध्यम पर एक नामित डेटा क्षेत्र) लेता है। यदि मिलान पाए जाते हैं, तो उन्हें टर्मिनल में प्रदर्शित किया जाएगा। सामान्य तौर पर, अभिव्यक्ति को "grep search_pattern file_name" के रूप में बनाया जा सकता है। लोकेट कमांड का उपयोग करके फ़ाइलों का पता लगाने के लिए, बस निम्नलिखित सिंटैक्स का उपयोग करें:

उदाहरण के तौर पर, केवल क्वेरी वाली फ़ाइलों को वापस करने के लिए, उस तक जाने वाली निर्देशिकाओं में क्वेरी वाली प्रत्येक फ़ाइल को दर्ज करने के बजाय, आप -b ध्वज का उपयोग कर सकते हैं (केवल बेसनाम, फ़ाइल का आधार नाम खोजने के लिए):

UNIX-जैसे ऑपरेटिंग सिस्टम पर फ़ाइलों का पता लगाने के लिए ढूँढें और खोजें आदेश उत्कृष्ट उपकरण हैं। इनमें से प्रत्येक उपयोगिता के अपने फायदे हैं। हमने लिनक्स ऑपरेटिंग सिस्टम में क्रू आउटपुट को खोजने और फ़िल्टर करने के लिए कमांड का उपयोग करने पर ध्यान दिया। जब सही ढंग से उपयोग किया जाता है, तो यह उपयोगिता आपके हाथों में एक शक्तिशाली उपकरण बन जाएगी। हालाँकि ढूँढें और ढूँढें आदेश अपने आप में बहुत शक्तिशाली हैं, उन्हें अन्य आदेशों के साथ जोड़कर बढ़ाया जा सकता है। एक बार जब आप यह सीख लें कि ढूँढने और ढूँढने के साथ कैसे काम करना है, तो wc, sort, और grep कमांड का उपयोग करके उनके परिणामों को साफ़ करने का प्रयास करें।

आज हम टर्मिनल का उपयोग करके लिनक्स में फ़ाइलों को खोजने के कई सबसे लोकप्रिय तरीकों पर नज़र डालेंगे।

1) खोजें:कमांड लाइन से फ़ाइलों को खोजने के लिए, आप "ढूंढें" कमांड का उपयोग कर सकते हैं। इस कमांड में निम्नलिखित सिंटैक्स है:

पथ मानदंड कार्रवाई ढूंढें

"पथ" - खोज निर्देशिका निर्दिष्ट करने के लिए अनुभाग. यदि कुछ भी निर्दिष्ट नहीं है, तो खोज वर्तमान निर्देशिका में की जाती है।

"मानदंड" - खोज विकल्प।

"कार्रवाई" - विकल्प जो खोज स्थिति को प्रभावित या नियंत्रित करते हैं, उदा.

2) पता लगाएं:टीम "पता लगाओ"यह "खोज-नाम" कमांड का एक विकल्प है। खोज कमांड फ़ाइल सिस्टम के चयनित भाग में फ़ाइलों की खोज करता है और प्रक्रिया बहुत तेज़ नहीं हो सकती है। दूसरी ओर, लोकेट कमांड विशेष रूप से इस उद्देश्य के लिए बनाए गए डेटाबेस में फ़ाइलों की तलाश करता है /var/lib/locatedb, जो बहुत तेज़ है। डेटाबेस को अपडेट करने के लिए कमांड का उपयोग करें अद्यतनबी.

3)कहां है:कहाँ है"निर्दिष्ट कमांड के लिए कोड (विकल्प -बी), मैन पेज (विकल्प -एम), और स्रोत फ़ाइलों (विकल्प -एस) का स्थान लौटाता है। यदि कोई विकल्प निर्दिष्ट नहीं है, तो सभी उपलब्ध जानकारी प्रदर्शित होती है। यह कमांड "से तेज़ है" खोजो"लेकिन कम पूर्ण.

4) जो:टीम " कौन सा"निर्दिष्ट कमांड के लिए PATH वेरिएबल में सूचीबद्ध सभी पथ खोजता है।

5) प्रकार:

जब विकल्पों के बिना बुलाया जाता है, तो पता चलता है कि नामों की व्याख्या कैसे की जाएगी

जब कमांड नाम के रूप में उपयोग किया जाता है। यदि विकल्प का उपयोग किया जाता है -ए, टीम प्रकारउन सभी निर्देशिकाओं की एक सूची देता है जहां एक निष्पादन योग्य फ़ाइल है

संगत नाम. सूची में उपनाम और फ़ंक्शन भी शामिल हैं

जब तक विकल्प निर्दिष्ट न हो -पी. को

यदि विकल्प निर्दिष्ट है तो कमांड हैश तक पहुंच नहीं है -ए. टीम प्रकाररिटर्न 0,

यदि कम से कम एक तर्क पाया जाता है, और 1 अन्यथा।

रक्षक

Explo.ru - पर्यटन और मनोरंजन के बारे में सब कुछ: तुर्की, मिस्र के अंतिम मिनट के दौरे और यात्राएं,