एंड्रॉयड

कमांड लाइन का उपयोग करके लिनक्स में फाइलें कैसे खोजें

Linux Tutorial for Beginners: Introduction to Linux Operating System

Linux Tutorial for Beginners: Introduction to Linux Operating System

विषयसूची:

Anonim

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

आप फ़ाइलों और निर्देशिकाओं को उनकी अनुमति, प्रकार, दिनांक, स्वामित्व, आकार और बहुत कुछ के आधार पर find लिए खोज आदेश का उपयोग कर सकते हैं। इसका उपयोग अन्य उपकरणों जैसे grep या sed साथ संयोजन में भी किया जा सकता है।

लिनक्स कमांड सिंटैक्स find

निम्न आदेश के लिए सामान्य सिंटैक्स निम्नानुसार है:

find

  • options विशेषता प्रतीकात्मक लिंक, डिबगिंग विकल्प, और अनुकूलन विधि के उपचार को नियंत्रित करती है। path… विशेषता प्रारंभिक निर्देशिका या निर्देशिकाओं को परिभाषित करती है जहां फाइल्स की खोज की जाएगी। expression विशेषता विकल्पों, खोज पैटर्न और ऑपरेटरों द्वारा अलग किए गए कार्य।

निर्देशिका में फ़ाइलों की खोज करने के लिए, find कमांड को लागू करने वाले उपयोगकर्ता को उस निर्देशिका पर अनुमतियाँ पढ़ने की आवश्यकता होती है।

आइए निम्नलिखित उदाहरण पर एक नज़र डालें:

find -L /var/www -name "*.js"

  • विकल्प -L (विकल्प) प्रतीकात्मक लिंक का अनुसरण करने के लिए find आदेश बताता है। /var/www (पथ…) खोज की जाने वाली निर्देशिका को निर्दिष्ट करता है। (अभिव्यक्ति) -name "*.js बताता find कि खोज के साथ समाप्त होने वाली फ़ाइलों को खोजें। .js (जावास्क्रिप्ट फ़ाइलें)।

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

नाम से फाइलें ढूंढना संभवतः find कमांड का सबसे आम उपयोग है। किसी फ़ाइल को उसके नाम के उपयोग से खोजने के लिए, नाम का विकल्प उस फ़ाइल के नाम का अनुसरण करता है जिसे आप खोज रहे हैं।

उदाहरण के लिए, आप /home/linuxize डायरेक्टरी में document.pdf नामक फाइल की खोज करने के लिए आप निम्नलिखित कमांड का उपयोग करेंगे:

find /home/linuxize -type f -name document.pdf

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

find /home/linuxize -type f -iname document.pdf

ऊपर दिया गया कमांड "Document.pdf", "DOCUMENT.pdf"..etc से मेल खाएगा।

एक्सटेंशन द्वारा फ़ाइलें खोजें

एक्सटेंशन द्वारा फाइलों की खोज करना नाम के अनुसार फाइलों की खोज करना है। उदाहरण के लिए, .log.gz /var/log/nginx निर्देशिका के अंदर समाप्त होने वाली सभी फ़ाइलों को खोजने के लिए आप इसका उपयोग कर सकते हैं:

find /var/log/nginx -type f -name '*.log.gz'

यह उल्लेख करना महत्वपूर्ण है कि जब आप वाइल्डकार्ड वर्ण का उपयोग करते हैं, तो आपको या तो पैटर्न को कोट करना होगा या बैकस्लैश \ _ के साथ तारांकन चिह्न से बचना होगा ताकि शेल द्वारा व्याख्या न हो।

उन सभी फ़ाइलों को खोजने के लिए जो regex *.log.gz मेल नहीं खाती हैं। आप *.log.gz विकल्प का उपयोग कर सकते हैं। उदाहरण के लिए, उन सभी फ़ाइलों को खोजने के लिए जो *.log.gz में समाप्त नहीं होती हैं:

find /var/log/nginx -type f -not -name '*.log.gz'

फाइल्स को टाइप के द्वारा खोजें

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

अपने प्रकार के आधार पर फ़ाइलों की खोज करने के लिए, फ़ाइल प्रकार को निर्दिष्ट करने के लिए -type विकल्प और निम्न -type उपयोग करें:

  • f : एक नियमित फ़ाइल d : निर्देशिका l : प्रतीकात्मक लिंक c : वर्ण डिवाइस b : ब्लॉक डिवाइस p : नामित पाइप (FIFO): सॉकेट

उदाहरण के लिए, वर्तमान कार्यशील निर्देशिका में सभी निर्देशिकाओं को खोजने के लिए, आप उपयोग करेंगे:

find. -type d

सामान्य उदाहरण के लिए वेबसाइट फ़ाइल अनुमतियों को 644 बदलना होगा और chmod कमांड का उपयोग करके 755 को निर्देशिका अनुमतियाँ:

find /var/www/my_website -type d -exec chmod 0755 {} ; find /var/www/my_website -type f -exec chmod 0644 {} ;

आकार द्वारा फ़ाइलें खोजें

फ़ाइल आकार के आधार पर फ़ाइलों को खोजने के लिए, -size मापदंड के साथ -size पैरामीटर पास करें। फ़ाइल का आकार निर्दिष्ट करने के लिए आप निम्न प्रत्ययों का उपयोग कर सकते हैं:

  • b : 512-बाइट ब्लॉक (डिफ़ॉल्ट) c : बाइट्स w : टू-बाइट शब्द k : किलोबाइट्स M : मेगाबाइट्स G : गीगाबाइट्स

निम्न आदेश /tmp निर्देशिका के अंदर बिल्कुल 1024 बाइट्स की सभी फाइलें /tmp :

find /tmp -type f -size 1024c

find आदेश आपको उन फ़ाइलों की खोज करने की भी अनुमति देता है जो एक निर्दिष्ट आकार से अधिक या कम हैं।

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

find. -type f -size -1M

find. -type f -size +1M

तुम भी एक आकार सीमा के भीतर फ़ाइलों के लिए खोज कर सकते हैं। निम्न आदेश 1 और 2MB बीच सभी फ़ाइलों को मिलेगा:

find. -type f -size +1M -size 21M

संशोधन तिथि द्वारा फ़ाइलें खोजें

find कमांड उनके अंतिम संशोधन, पहुंच या परिवर्तन के समय के आधार पर फ़ाइलों की खोज भी कर सकती है।

आकार द्वारा खोज करते समय समान, "से अधिक" या "से कम" के लिए प्लस और माइनस प्रतीकों का उपयोग करें।

मान लें कि कुछ दिन पहले, आपने एक dovecot कॉन्फ़िगरेशन फ़ाइलों में से एक को संशोधित किया था, लेकिन आप भूल गए कि कौन सा है। आप /etc/dovecot/conf.d निर्देशिका के तहत सभी फ़ाइलों को आसानी से फ़िल्टर कर सकते हैं जो /etc/dovecot/conf.d साथ समाप्त होती हैं और पिछले पांच दिनों में संशोधित की गई हैं:

find /etc/dovecot/conf.d -name "*.conf" -mtime 5

यहाँ- -daystart विकल्प का उपयोग करके संशोधन तिथि के आधार पर फ़ाइलों को फ़िल्टर करने का एक और उदाहरण दिया गया है। नीचे दी गई कमांड उन सभी फाइलों को सूचीबद्ध करेगी /home जिन्हें 30 या अधिक दिन पहले संशोधित किया गया था:

find /home -mtime +30 -daystart

अनुमतियाँ द्वारा फ़ाइलें खोजें

-perm विकल्प आपको फ़ाइल अनुमतियों के आधार पर फ़ाइलों की खोज करने की अनुमति देता है।

उदाहरण के लिए, /var/www/html निर्देशिका के अंदर बिल्कुल 775 की अनुमतियों वाली सभी फ़ाइलों को खोजने के लिए, आप उपयोग करेंगे:

find /var/www/html -perm 644

आप संख्यात्मक मोड को माइनस - या स्लैश / साथ उपसर्ग कर सकते हैं।

जब स्लैश / उपसर्ग के रूप में उपयोग किया जाता है, तो कम से कम एक श्रेणी (उपयोगकर्ता, समूह या अन्य) में फ़ाइल के मिलान के लिए कम से कम संबंधित बिट सेट होना चाहिए।

निम्नलिखित उदाहरण कमांड पर विचार करें:

find. -perm /444

उपरोक्त कमांड उपयोगकर्ता, समूह या अन्य के लिए पढ़ी गई अनुमतियों के साथ सभी फाइलों से मेल खाएगी।

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

find. -perm -664

स्वामी द्वारा फ़ाइलें खोजें

किसी विशेष उपयोगकर्ता या समूह के स्वामित्व वाली फ़ाइलों को खोजने के लिए, -user और -group विकल्पों का उपयोग करें।

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

find / -user linuxize

यहाँ एक वास्तविक दुनिया उदाहरण है। मान लीजिए कि आप उपयोगकर्ता www-data स्वामित्व वाली सभी फ़ाइलों को खोजना चाहते हैं और www-data से nginx में मिलान की गई फ़ाइलों के स्वामित्व को बदलना चाहते हैं:

find / -user www-data -type f -exec chown nginx {} ;

फाइल्स ढूंढें और डिलीट करें

सभी मिलान फ़ाइलों को हटाने के लिए, मैच अभिव्यक्ति के अंत में -delete विकल्प जोड़ें।

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

उदाहरण के लिए .temp साथ समाप्त होने वाली सभी फ़ाइलों को हटाने के लिए /var/log/ आप का उपयोग करेंगे:

find /var/log/ -name `*.temp` -delete अत्यधिक सावधानी के साथ -delete विकल्प का उपयोग करें। खोज कमांड लाइन का मूल्यांकन एक अभिव्यक्ति के रूप में किया जाता है और यदि आप -delete विकल्प पहले जोड़ते हैं, तो कमांड आपके द्वारा निर्दिष्ट शुरुआती बिंदुओं के नीचे सब कुछ हटा देगा।

जब यह निर्देशिकाओं की बात आती है, तो केवल rmdir जैसी खाली निर्देशिकाओं को हटा सकते हैं।

निष्कर्ष

हमने आपको विभिन्न विकल्पों और मानदंडों के साथ find कमांड का उपयोग करने का तरीका दिखाया है।

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

टर्मिनल खोजें