लिनक्समध्ये कार्यक्षम फाइल शोधणे
Linux सह काम करताना, डिरेक्टरीमध्ये फाइल्स शोधणे हे एक सामान्य आणि काहीवेळा गुंतागुंतीचे काम असू शकते. आवर्ती शोध पद्धती आणि वाइल्डकार्ड जुळणी वापरणे ही प्रक्रिया लक्षणीयरीत्या सुव्यवस्थित करू शकते. ही साधने नवशिक्या आणि प्रगत वापरकर्त्यांसाठी अमूल्य आहेत, ज्यामुळे फाइल व्यवस्थापन अधिक कार्यक्षम बनते.
या मार्गदर्शकामध्ये, विशिष्ट वाइल्डकार्ड पॅटर्नवर आधारित वर्तमान निर्देशिकेतील सर्व फाईल्स आणि त्याच्या उपडिरेक्ट्रीजमधील सर्व फायली आवर्तीपणे कशा शोधायच्या ते आम्ही एक्सप्लोर करू. तुम्ही मोठे डेटासेट आयोजित करत असाल किंवा काही फाईल्स शोधण्याचा प्रयत्न करत असाल, या पद्धती तुमची कमांड लाइन प्रवीणता वाढवतील.
आज्ञा | वर्णन |
---|---|
find | निर्देशिका पदानुक्रमात फाइल्स आणि निर्देशिका शोधते |
-name | वाइल्डकार्ड पॅटर्न वापरून फाइल्स त्यांच्या नावाने जुळवते |
os.walk | डिरेक्टरी ट्रीमध्ये वर-खाली किंवा खाली-वर चालून फाइलची नावे व्युत्पन्न करते |
fnmatch.fnmatch | फाइलनाव किंवा स्ट्रिंग वाइल्डकार्ड पॅटर्नशी जुळते की नाही ते तपासते |
param | पॉवरशेल स्क्रिप्ट्स आणि फंक्शन्ससाठी पॅरामीटर्स परिभाषित करते |
Get-ChildItem | एक किंवा अधिक निर्दिष्ट ठिकाणी आयटम पुनर्प्राप्त करते |
-Recurse | निर्देशिकेद्वारे आवर्ती शोधण्यासाठी कमांडला निर्देश देते |
-Filter | वाइल्डकार्ड अभिव्यक्ती वापरून आयटम फिल्टर करते |
आवर्ती फाइल शोध स्क्रिप्टचे तपशीलवार स्पष्टीकरण
प्रथम स्क्रिप्ट वर्तमान डिरेक्टरी आणि दिलेल्या वाइल्डकार्ड पॅटर्नवर आधारित तिच्या उपडिरेक्टरीजमधील फायली शोधण्यासाठी शेल स्क्रिप्ट वापरते. स्क्रिप्टचा दुभाषी निर्दिष्ट करण्यासाठी हे शेबांग ने सुरू होते. स्क्रिप्ट नंतर वापरकर्त्याने if [ $# -eq 0 ] वापरून युक्तिवाद म्हणून वाइल्डकार्ड नमुना प्रदान केला आहे का ते तपासते. नसल्यास, ते वापरकर्त्याला योग्य वापरासाठी सूचित करते आणि बाहेर पडते. नमुना प्रदान केला असल्यास, स्क्रिप्ट फाइल्स शोधण्यासाठी -प्रकार f पर्यायासह शोधा कमांड वापरते आणि वाइल्डकार्ड पॅटर्नशी जुळण्यासाठी -नाव पर्याय वापरते. शोधा कमांड युनिक्स-आधारित सिस्टममध्ये फायली वारंवार शोधण्यासाठी अत्यंत कार्यक्षम आहे. यशस्वी अंमलबजावणी सूचित करण्यासाठी स्क्रिप्ट एक्झिट 0 सह समाप्त होते.
दुसरी स्क्रिप्ट ही पायथन स्क्रिप्ट आहे जी वाइल्डकार्ड पॅटर्नवर आधारित फायली वारंवार शोधते. हे os आणि sys मॉड्यूल्स आयात करून सुरू होते, जे ऑपरेटिंग सिस्टमशी संवाद साधण्यासाठी आणि कमांड-लाइन वितर्क हाताळण्यासाठी आवश्यक आहेत. वापरकर्त्याने वाइल्डकार्ड नमुना प्रदान केला आहे की नाही हे स्क्रिप्ट तपासते; नसल्यास, ते योग्य वापर मुद्रित करते आणि बाहेर पडते. os.walk वापरल्याने स्क्रिप्टला डिरेक्टरी ट्री ट्रॅव्हर्स करण्याची अनुमती मिळते. सापडलेल्या प्रत्येक फाइलसाठी, fnmatch.fnmatch फाइलचे नाव वाइल्डकार्ड पॅटर्नशी जुळत आहे का ते तपासते, जुळणारे फाइल पथ मुद्रित करते. ही स्क्रिप्ट वापरकर्त्यांसाठी उपयुक्त आहे जे स्क्रिप्टिंगसाठी पायथनला प्राधान्य देतात आणि त्यांच्या कोडमध्ये अधिक लवचिकता आणि वाचनीयता आवश्यक आहे.
विंडोज सिस्टीमवर समान कार्य करण्यासाठी तिसरी स्क्रिप्ट पॉवरशेल वापरते. वाइल्डकार्ड पॅटर्नसाठी पॅरामीटर परिभाषित करण्यासाठी स्क्रिप्ट परम विधान वापरते. नमुना प्रदान केला नसल्यास, ते वापरकर्त्यास योग्य वापरासाठी सूचित करते. Get-ChildItem cmdlet, -Recurse ध्वजासह एकत्रितपणे, निर्दिष्ट स्थानांमधील आयटम आवर्तीपणे पुनर्प्राप्त करते. -फिल्टर पॅरामीटर विशिष्ट फाइल्सशी जुळण्यासाठी वाइल्डकार्ड पॅटर्न लागू करतो. ही स्क्रिप्ट Windows वातावरणात काम करणाऱ्या वापरकर्त्यांसाठी आदर्श आहे, PowerShell च्या शक्तिशाली आणि अष्टपैलू स्क्रिप्टिंग क्षमतांचा फायदा घेऊन फायली कार्यक्षमतेने व्यवस्थापित करण्यासाठी आणि शोधण्यासाठी.
फाइंड कमांड वापरून रिकर्सिव फाइल शोध
लिनक्समध्ये शेल स्क्रिप्टिंग
#!/bin/bash
# Script to recursively find files based on wildcard matching
# Check if the user has provided a wildcard pattern
if [ $# -eq 0 ]
then
echo "Usage: $0 <wildcard-pattern>"
exit 1
fi
# Find and print the files matching the pattern
find . -type f -name "$1"
exit 0
आवर्ती फाइल शोधासाठी पायथन स्क्रिप्ट
पायथन स्क्रिप्टिंग
१
आवर्ती फाइल शोधासाठी पॉवरशेल स्क्रिप्ट
पॉवरशेल स्क्रिप्टिंग
# Check if the user has provided a wildcard pattern
param (
[string]$pattern
)
if (-not $pattern) {
Write-Host "Usage: .\script.ps1 -pattern '<wildcard-pattern>'"
exit 1
}
# Get the files matching the pattern
Get-ChildItem -Recurse -File -Filter $pattern
आवर्ती फाइल शोधासाठी प्रगत तंत्रे
पूर्वी चर्चा केलेल्या मूलभूत रिकर्सिव फाइल शोध पद्धतींव्यतिरिक्त, लिनक्सवर तुमची फाइल शोधण्याची क्षमता वाढवणारी अनेक प्रगत तंत्रे आहेत. अशाच एका पद्धतीमध्ये विशिष्ट मजकूर पॅटर्न असलेल्या फाइल्स शोधण्यासाठी find सह grep कमांड वापरणे समाविष्ट आहे. उदाहरणार्थ, तुम्ही शोधा वापरू शकता. -प्रकार f -name "*.txt" -exec grep "search_text" {} + "search_text" स्ट्रिंग असलेल्या सर्व मजकूर फाइल्स शोधण्यासाठी. हे विशेषतः विकसक आणि सिस्टम प्रशासकांसाठी उपयुक्त आहे ज्यांना मोठ्या कोडबेस किंवा लॉग फाइल्सद्वारे कार्यक्षमतेने शोधण्याची आवश्यकता आहे.
पुनरावर्ती फाइल शोधांसाठी आणखी एक शक्तिशाली साधन म्हणजे fd, शोध साठी एक साधा, जलद आणि वापरकर्ता-अनुकूल पर्याय. fd योग्य डीफॉल्टसह येते आणि अंतर्ज्ञानी वाक्यरचना प्रदान करते. उदाहरणार्थ, fd "पॅटर्न" ही आज्ञा नमुन्याशी जुळणाऱ्या फायलींचा वारंवार शोध घेईल, आणि ते डीफॉल्टनुसार रेग्युलर एक्स्प्रेशनला सपोर्ट करते. याव्यतिरिक्त, समांतर फाइल सिस्टम ट्रॅव्हर्सलमुळे अनेक परिस्थितींमध्ये fd हे शोध पेक्षा वेगवान आहे. वापरकर्ता-अनुकूल इंटरफेससह प्रगत शोध वैशिष्ट्यांची आवश्यकता असलेल्या वापरकर्त्यांसाठी, fd हा एक उत्कृष्ट पर्याय असू शकतो.
पुनरावृत्ती फाइल शोध वर सामान्य प्रश्न आणि उत्तरे
- मी विशिष्ट विस्तारासह फायली वारंवार शोधू कसे?
- शोधा ही आज्ञा वापरा. -type f -name "*.extension" जेथे "extension" हा फाईल विस्तार आहे जो तुम्ही शोधत आहात.
- मी गेल्या 7 दिवसात सुधारित केलेल्या फाइल्स शोधू शकतो का?
- होय, शोधा ही आज्ञा वापरा. -प्रकार f -mtime -7 गेल्या 7 दिवसात बदललेल्या फाइल्स शोधण्यासाठी.
- मी काही डिरेक्टरी शोधातून कसे वगळू?
- डिरेक्टरी वगळण्यासाठी शोधा सह -छाटणी पर्याय वापरा, उदा., शोधा. -path "./exclude_dir" -prune -o -type f -name "*.txt" -print.
- फाइल्स त्यांच्या आकारानुसार शोधणे शक्य आहे का?
- होय, शोधा वापरा. 100MB पेक्षा मोठ्या फाइल्स शोधण्यासाठी f -size +100M टाइप करा.
- रेग्युलर एक्स्प्रेशनशी जुळणारी नावे असलेल्या फाईल्स मी कशा शोधू?
- शोधा वापरा. रेग्युलर एक्स्प्रेशनशी जुळणारी नावे असलेल्या फाइल्स शोधण्यासाठी f -regex ".*पॅटर्न.*" टाइप करा.
- मी अनेक शोध निकष एकत्र करू शकतो का?
- होय, तुम्ही शोधा पर्याय वापरून निकष एकत्र करू शकता, उदा., शोधा. -प्रकार f -नाव "*.txt" -आकार +10M.
- मी लपविलेल्या फायली वारंवार कसे शोधू?
- शोधा वापरा. लपलेल्या फाइल्स शोधण्यासाठी f -name ".*" टाइप करा.
- फक्त डिरेक्टरी सूचीबद्ध करण्याचा मार्ग आहे का?
- होय, शोधा वापरा. सर्व डिरेक्टरी आवर्तीने सूचीबद्ध करण्यासाठी d टाइप करा.
- सापडलेल्या फाईल्सची संख्या मी कशी मोजू शकतो?
- जोडा | wc -l शोधा कमांडवर, उदा., शोधा. -प्रकार f -नाव "*.txt" | wc -l.
- मी शोधाची खोली मर्यादित करू शकतो का?
- होय, -maxdepth पर्याय वापरा, उदा., शोधा. -मॅक्सडेप्थ 2 -प्रकार f शोध 2 स्तरांपर्यंत मर्यादित करण्यासाठी.
आवर्ती फाइल शोधासाठी प्रगत तंत्रे
पूर्वी चर्चा केलेल्या मूलभूत रिकर्सिव फाइल शोध पद्धतींव्यतिरिक्त, लिनक्सवर तुमची फाइल शोधण्याची क्षमता वाढवणारी अनेक प्रगत तंत्रे आहेत. अशी एक पद्धत वापरणे समाविष्ट आहे grep सह संयोजनात आदेश १ विशिष्ट मजकूर नमुने असलेल्या फाइल्स शोधण्यासाठी. उदाहरणार्थ, आपण वापरू शकता find . -type f -name "*.txt" -exec grep "search_text" {} + "search_text" स्ट्रिंग असलेल्या सर्व मजकूर फाइल्स शोधण्यासाठी. हे विशेषतः विकसक आणि सिस्टम प्रशासकांसाठी उपयुक्त आहे ज्यांना मोठ्या कोडबेस किंवा लॉग फाइल्सद्वारे कार्यक्षमतेने शोधण्याची आवश्यकता आहे.
पुनरावृत्ती फाइल शोधांसाठी आणखी एक शक्तिशाली साधन आहे fd, एक साधा, जलद, आणि वापरकर्ता-अनुकूल पर्याय १. fd सेन्सिबल डीफॉल्टसह येते आणि अंतर्ज्ञानी वाक्यरचना प्रदान करते. उदाहरणार्थ, आदेश fd "pattern" पॅटर्नशी जुळणाऱ्या फायलींचा आवर्ती शोध घेईल, आणि ते डीफॉल्टनुसार रेग्युलर एक्स्प्रेशनला सपोर्ट करते. याव्यतिरिक्त, fd पेक्षा वेगवान आहे १ समांतर फाइल सिस्टम ट्रॅव्हर्सलमुळे अनेक परिस्थितींमध्ये. वापरकर्ता-अनुकूल इंटरफेससह प्रगत शोध वैशिष्ट्यांची आवश्यकता असलेल्या वापरकर्त्यांसाठी, fd एक उत्कृष्ट निवड असू शकते.
रिकर्सिव्ह फाइल शोधावर अंतिम विचार
कार्यक्षम फाइल व्यवस्थापनासाठी, विशेषत: जटिल डिरेक्ट्री स्ट्रक्चर्समध्ये लिनक्समध्ये रिकर्सिव फाइल शोधात प्रभुत्व मिळवणे महत्त्वाचे आहे. सारख्या साधनांचा लाभ घेऊन १, grep, आणि यासारखे पर्याय fd, वापरकर्ते त्यांची उत्पादकता लक्षणीयरीत्या वाढवू शकतात. या आज्ञा समजून घेणे आणि त्यांचा वापर केल्याने वेळ वाचू शकतो आणि नवशिक्या आणि अनुभवी वापरकर्त्यांसाठी कार्ये सुलभ होऊ शकतात, फायली शोधणे ही एक सरळ प्रक्रिया होईल याची खात्री करून.