निर्देशिका में फ़ाइलों में से एक को कैसे हटाएं

लिनक्स फ़ाइलों को हटा दें

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

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

और सबसे अच्छी बात यह है आपको कोई प्रोग्राम इंस्टॉल करने की आवश्यकता नहीं होगी, इसे आरएम और फाइंड जैसे कमांड के साथ आसानी से किया जा सकता है। यानी, ऐसे प्रोग्राम जो किसी भी Linux डिस्ट्रो में पहले से इंस्टॉल होते हैं। और निश्चित रूप से, यह विधि पैटर्न ढूंढने और उन मिलानों का उपयोग करके केवल वही खत्म करने पर आधारित होगी जो आप चाहते हैं।

खैर, वहाँ को खत्म करने के लिए है कई विकल्प, क्या रहे हैं…

rm वाली निर्देशिका से फ़ाइलें निकालें

खैर, उपयोग करने के लिए rm कमांड आप जो चाहते हैं उसे खत्म करने के लिए, आपको सबसे पहले पैटर्न की पहचान करने के कुछ तरीके जानने होंगे:

  • *(पैटर्न की सूची) - निर्दिष्ट पैटर्न की शून्य या अधिक घटनाओं से मेल खाता है
  • ?(पैटर्न सूची) - निर्दिष्ट पैटर्न की शून्य या एक घटना से मेल खाता है
  • +(पैटर्न की सूची) - निर्दिष्ट पैटर्न की एक या अधिक घटनाओं से मेल खाता है
  • @(पैटर्न सूची) - निर्दिष्ट पैटर्न में से एक से मेल खाता है
  • !(पैटर्न सूची) - दिए गए पैटर्न में से किसी एक को छोड़कर किसी भी चीज़ से मेल खाता है

पैरा extglob सक्षम करें उनका उपयोग करने के लिए, आपको पहले निम्नलिखित कमांड चलानी होगी:

<br data-mce-bogus="1">

shopt -s extglob<br data-mce-bogus="1">

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

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

rm -v !("lxa")

आप भी निर्दिष्ट कर सकते हैं दो या दो से अधिक नाम जिन्हें आप हटाना नहीं चाहते. उदाहरण के लिए, "lxa" और "desdelinux" को हटाने से बचने के लिए:

 rm -v !("lxa"|"desdelinux") 

आप सभी फ़ाइलें हटा सकते हैं, विस्तार वाले को छोड़कर ।एमपी 3। उदाहरण के लिए:

 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


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: एबी इंटरनेट नेटवर्क 2008 SL
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।