Cum se elimină toate fișierele, cu excepția unuia dintr-un director

ștergeți fișierele Linux

Uneori ai nevoie elimina aproape toate fisierele dintr-un director, dar doriți să păstrați una sau unele dintre ele. Când există un număr mare de aceștia, a merge unul câte unul este o sarcină plictisitoare. Nu este cea mai bună opțiune, există modalități de a face munca în Linux mult mai ușoară și că puteți elimina toate cele de care aveți nevoie simultan.

De exemplu, poate doriți să eliminați numai cele care încep cu un anumit nume sau cele care au o extensie specifică și așa mai departe. Tot ce este posibilDe fapt, cu alte ocazii am arătat deja tutoriale similare în LxA. Aici puteți urmări tutorialul pas cu pas și într-un mod simplu pentru a putea șterge toate acele fișiere pe care le doriți, cu excepția a ceea ce doriți să salvați.

Și cel mai bun lucru este că nu va trebui să instalați niciun program, se poate face cu ușurință cu comenzi precum rm și find. Adică programe care sunt deja preinstalate pe orice distribuție Linux. Și, desigur, metoda se va baza pe găsirea de modele și utilizarea acestor potriviri pentru a elimina doar ceea ce doriți.

Ei bine, pentru a elimina acolo mai multe alternative, Ce sunt ei…

Eliminați fișierele dintr-un director cu rm

Ei bine, pentru a utiliza rm comanda Pentru a elimina ceea ce vă simțiți, trebuie să cunoașteți câteva modalități de a identifica mai întâi tiparele:

  • * (lista modelelor) - potrivește zero sau mai multe apariții ale modelelor specificate
  • ? (lista modelelor) - se potrivește cu zero sau cu o apariție a modelelor specificate
  • + (lista modelelor) - se potrivește cu una sau mai multe apariții ale modelelor specificate
  • @ (lista modelelor) - se potrivește cu unul dintre tiparele specificate
  • ! (lista modelelor) - se potrivește cu orice altceva decât cu unul dintre tiparele date

la activați extglob Pentru a le utiliza, trebuie să executați mai întâi următoarea comandă:

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

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

ochi! Nu îl specific, dar se presupune că aveți permisiuni pentru a face aceste operații și că vă aflați în acel director atunci când executați comanda rm. Aveți grijă la acest lucru, deoarece, dacă îl rulați pe o altă cale, puteți ajunge să ștergeți fișierele pe care nu le doriți. Adică, înainte de a executa aceste comenzi, asigurați-vă că ați introdus directorul dorit cu cd.

Acum puteți utiliza rm pentru a elimina orice doriți. De exemplu, eliminați toate fișierele dintr-un director, cu excepția celor care se potrivesc cu numele «Lxa»:

rm -v !("lxa")

De asemenea, puteți specifica două sau mai multe nume pe care nu doriți să le ștergeți. De exemplu, pentru a evita eliminarea „lxa” și „desdelinux”:

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

Puteți șterge toate fișierele, minus cele cu extensie .mp3. De exemplu:

 rm -v !(*.mp3) 

La sfârșit, puteți reveni la dezactivați extglob:

 shopt -u extglob 

Eliminați fișierele dintr-un director cu find

O altă alternativă la RM este folosiți find pentru a elimina ceea ce vă simțiți. Puteți utiliza o pipă și xargs cu rm sau puteți utiliza opțiunea -delete pentru a găsi. Adică, sintaxa generică ar fi:

find /directory/ -type f -not -name 'PATRÓN' -delete
find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}

De exemplu, imaginați-vă că doriți ștergeți toate fișierele dintr-un director, cu excepția celor cu extensia .jpg, puteți utiliza una dintre aceste două comenzi, deoarece ambele obțin același rezultat:

find . -type f -not -name '*.jpg'-delete

find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}

În schimb, dacă ai vrut adăugați un model suplimentar, ai putea și tu. De exemplu, imaginați-vă că nu doriți să eliminați .pdf sau .odt dintr-un director:

find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete

Desigur, ai putea face același lucru cu | și xargs ca în exemplul anterior. Apropo, am folosit -nu sa negati, dar puteți elimina acest lucru pentru a-l face pozitiv, adică pentru a elimina modelele potrivite și nu pentru a le exclude.

Ștergeți fișierele dintr-un director folosind variabila GLOBIGNORE

În cele din urmă, există O altă alternativă pentru a găsi și rm și folosește o variabilă de mediu pentru a indica fișierele pe care doriți să le eliminați sau să le excludeți. De exemplu, imaginați-vă că doriți să ștergeți toate fișierele dintr-un director numit Descărcări, salvând fișierele .pdf, .mp3 și .mp4. În acest caz, puteți face următoarele:

cd Descargas
GLOBIGNORE=*.pdf:*.mp4:.*mp3
rm -v *
unset GLOBIGNORE


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.