Dažreiz jums vajag noņemt gandrīz visus failus no direktorija, bet vēlaties saglabāt vienu vai dažus no tiem. Ja viņu ir liels skaits, iet pa vienam ir garlaicīgs uzdevums. Tas nav labākais risinājums, ir veidi, kā padarīt darbu Linux daudz vieglāk un ka jūs varat uzreiz novērst visus nepieciešamos.
Piemēram, jūs varētu vēlēties noņemt tikai tos, kas sākas ar noteiktu nosaukumu, vai tos, kuriem ir noteikts paplašinājums utt. Viss, kas ir iespējamsPatiesībā citos gadījumos es jau parādīju līdzīgas apmācības LxA. Šeit jūs varat sekot apmācībai soli pa solim un vienkāršā veidā, lai varētu izdzēst visus nepieciešamos failus, izņemot tos, kurus vēlaties saglabāt.
Un labākais ir tas jums nebūs jāinstalē neviena programma, to var viegli izdarīt ar tādām komandām kā rm un find. Tas ir, programmas, kas jau ir iepriekš instalētas jebkurā Linux izplatītājā. Protams, metodes pamatā būs modeļu atrašana un šo atbilstību izmantošana, lai noņemtu tikai to, ko vēlaties.
Nu, lai tur likvidētu vairākas alternatīvas, Kas viņi ir…
Noņemiet failus no direktorijas, izmantojot rm
Nu, lai izmantotu rm komanda Lai novērstu to, kas jums šķiet, pirms dažiem veidiem, kā identificēt modeļus, jums jāzina:
- * (modeļu saraksts) - atbilst nullei vai vairākiem norādīto modeļu gadījumiem
- ? (modeļu saraksts) - atbilst nullei vai vienam norādīto modeļu gadījumam
- + (modeļu saraksts) - atbilst vienam vai vairākiem norādīto modeļu gadījumiem
- @ (modeļu saraksts) - atbilst vienam no norādītajiem modeļiem
- ! (modeļu saraksts) - atbilst jebkuram, izņemot vienu no dotajiem modeļiem
līdz iespējot extglob Lai tos varētu izmantot, vispirms jāizpilda šāda komanda:
<br data-mce-bogus="1"> shopt -s extglob<br data-mce-bogus="1">
Tagad jūs varat izmantot rm, lai noņemtu visu, ko vēlaties. Piemēram, noņemt visus failus no direktorija, izņemot tos, kas atbilst nosaukumam «Lxa»:
rm -v !("lxa")
Varat arī norādīt divi vai vairāki vārdi, kurus nevēlaties dzēst. Piemēram, lai izvairītos no “lxa” un “desdelinux” noņemšanas:
rm -v !("lxa"|"desdelinux")
Jūs varat izdzēst visus failus, atskaitot tos, kuriem ir pagarinājums .mp3. Piemēram:
rm -v !(*.mp3)
Beigās jūs varat atgriezties atspējot extglob:
shopt -u extglob
Noņemiet failus no direktorija ar meklēšanu
Vēl viena alternatīva rm ir izmantojiet meklēšanu, lai noņemtu visu, kas jums patīk. Varat izmantot cauruli un xargs ar rm vai izmantot opciju -delete, lai atrastu. Tas ir, vispārējā sintakse būtu:
find /directory/ -type f -not -name 'PATRÓN' -delete find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}
Piemēram, iedomājieties, ka vēlaties izdzēsiet visus failus no direktorija, izņemot tos, kuriem ir paplašinājums .jpg, jūs varētu izmantot vienu no šīm divām komandām, jo abām ir vienāds rezultāts:
find . -type f -not -name '*.jpg'-delete find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}
Tā vietā, ja vēlaties pievienojiet kādu papildu modeli, arī tu varētu. Piemēram, pieņemsim, ka nevēlaties no direktorijas noņemt .pdf vai .odt:
find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete
Protams, jūs varētu darīt tāpat ar | un xargs tāpat kā iepriekšējā piemērā. Starp citu, mēs esam izmantojuši -noliedz, bet jūs varat to noņemt, lai padarītu to pozitīvu, tas ir, noņemt atbilstošos modeļus un tos neizslēgt.
Dzēsiet failus no direktorija, izmantojot mainīgo GLOBIGNORE
Visbeidzot, ir Vēl viena alternatīva lai atrastu un rm, un tas izmanto vides mainīgo, lai norādītu uz failiem, kurus vēlaties noņemt vai izslēgt. Piemēram, iedomājieties, ka vēlaties dzēst visus failus direktorijā ar nosaukumu Lejupielādes, saglabājot .pdf, .mp3 un .mp4 failus. Tādā gadījumā jūs varētu rīkoties šādi:
cd Descargas GLOBIGNORE=*.pdf:*.mp4:.*mp3 rm -v * unset GLOBIGNORE