कधीकधी आपल्याला आवश्यक असते निर्देशिकेतून जवळपास सर्व फाईल्स काढा, परंतु आपण त्यापैकी एक किंवा काही ठेवू इच्छित आहात. जेव्हा त्यांच्यातील बरीच संख्या असते तेव्हा एकामागून एक जाणे एक कंटाळवाणे काम होते. हा सर्वोत्तम पर्याय नाही, लिनक्समध्ये काम अधिक सुलभ करण्यासाठी अनेक मार्ग आहेत आणि आपण एकाच वेळी आवश्यक असलेले सर्व काढून टाकू शकता.
उदाहरणार्थ, आपण केवळ विशिष्ट नावाने प्रारंभ होणारे किंवा विशिष्ट विस्तार असलेले अशाच गोष्टी हटवू शकता. ते सर्व शक्य आहेखरं तर, इतर प्रसंगी मी आधीच एलएक्सएमध्ये तत्सम ट्यूटोरियल दर्शविले आहेत. येथे आपण ट्यूटोरियल चरण चरण अनुसरण करू शकता आणि आपण जतन करू इच्छित त्याव्यतिरिक्त आपल्यास इच्छित असलेल्या सर्व फायली हटविण्यास सोप्या मार्गाने.
आणि सर्वात चांगली गोष्ट म्हणजे ती आपल्याला कोणताही प्रोग्राम स्थापित करण्याची आवश्यकता नाही, हे rm आणि find या कमांडद्वारे सहज करता येते. म्हणजेच, प्रोग्राम जे आधीपासूनच कोणत्याही लिनक्स डिस्ट्रोवर पूर्व-स्थापित केलेले आहेत. आणि अर्थातच, पद्धत आपल्याला शोधण्यासाठी फक्त ते शोधण्यासाठी नमुने शोधण्यात आणि त्या जुळण्यांवर आधारित असेल.
बरं, तेथे दूर करण्यासाठी अनेक पर्याय, ते काय आहेत…
Rm सह डिरेक्टरीमधून फायली काढा
बरं, वापरण्यासाठी rm कमांड आपल्याला काय वाटते ते दूर करण्यासाठी, नमुने ओळखण्याचे काही मार्ग करण्यापूर्वी आपल्याला हे माहित असले पाहिजे:
- * (नमुन्यांची यादी) - निर्दिष्ट नमुन्यांची शून्य किंवा अधिक घटनांशी जुळते
- ? (नमुन्यांची यादी) - निर्दिष्ट नमुन्यांची शून्य किंवा एक घटना जुळते
- + (नमुना यादी) - निर्दिष्ट नमुन्यांची एक किंवा अधिक घटनांशी जुळते
- @ (नमुना यादी) - निर्दिष्ट नमुन्यांपैकी एकाशी जुळते
- (नमुना यादी) - दिलेल्या नमुन्यांव्यतिरिक्त कोणत्याही गोष्टीशी जुळते
परिच्छेद एक्टिग्लोब सक्रिय करा त्यांचा वापर करण्यासाठी, आपल्याला प्रथम खालील आज्ञा चालवावी लागेल:
<br data-mce-bogus="1"> shopt -s extglob<br data-mce-bogus="1">
आपणास पाहिजे ते काढण्यासाठी आता आपण आरएम वापरू शकता. उदाहरणार्थ, नावाशी जुळणार्या फायली वगळता डिरेक्टरीमधून सर्व फाईल्स काढा «Lxa»:
rm -v !("lxa")
आपण निर्दिष्ट करू शकता आपण हटवू इच्छित नाही अशी दोन किंवा अधिक नावे. उदाहरणार्थ, "lxa" आणि "desdelinux" काढून टाकणे टाळण्यासाठी:
rm -v !("lxa"|"desdelinux")
आपण सर्व फायली हटवू शकता, वजा करा .mp3. उदाहरणार्थ:
rm -v !(*.mp3)
शेवटी, आपण परत जाऊ शकता एक्स्टग्लोब अक्षम करा:
shopt -u extglob
शोधासह निर्देशिकेमधून फायली काढा
आरएमचा दुसरा पर्याय आहे आपल्याला पाहिजे असलेल्या सर्व गोष्टी काढण्यासाठी शोधा वापरा. आपण आरएम सह एक पाईप आणि xargs वापरू शकता, किंवा शोधण्यासाठी-हटवा पर्याय वापरू शकता. म्हणजेच, सर्वसामान्य वाक्यरचना असे असेलः
find /directory/ -type f -not -name 'PATRÓN' -delete find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}
उदाहरणार्थ, आपल्याला पाहिजे अशी कल्पना करा डिरेक्टरीमधून सर्व फायली विस्तारसह हटवा .jpg, आपण या दोन्ही आदेशांपैकी एक वापरू शकता, कारण त्या दोघांनाही समान निकाल प्राप्त झाला आहे:
find . -type f -not -name '*.jpg'-delete find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}
त्याऐवजी, आपण इच्छित असल्यास काही अतिरिक्त नमुना जोडा, आपण देखील करू शकता. उदाहरणार्थ, समजा आपल्याला एखादे निर्देशिका पासून .pdf किंवा .odt काढायचे नाहीः
find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete
नक्कीच, आपण | मागील उदाहरण प्रमाणे xargs. तसे, आम्ही वापरला आहे -नाकारण्यासाठी नाही, परंतु आपण ते सकारात्मक करण्यासाठी म्हणजेच जुळणारे नमुने काढून टाकण्यासाठी आणि त्यास वगळण्यासाठी काढू शकता.
GLOBIGNORE चल वापरून डिरेक्टरीमधून फायली हटवा
शेवटी, तेथे आहे दुसरा पर्याय शोधण्यासाठी आणि आरएम शोधण्यासाठी आणि आपण काढू किंवा वगळू इच्छित नसलेल्या फायलींकडे निर्देश करण्यासाठी हे वातावरणीय चल वापरत आहे. उदाहरणार्थ, कल्पना करा की आपण डाउनलोड नामक निर्देशिकेतील सर्व फायली हटवू इच्छिता, .pdf, .mp3 आणि .mp4 फायली जतन करा. अशावेळी आपण असे करू शकता:
cd Descargas GLOBIGNORE=*.pdf:*.mp4:.*mp3 rm -v * unset GLOBIGNORE