Come eliminare tutti i file tranne uno in una directory

eliminare i file Linux

A volte hai bisogno rimuovere quasi tutti i file da una directory, ma vuoi mantenerne uno o alcuni di essi. Quando ce ne sono un gran numero, andare uno per uno è un compito noioso. Non è l'opzione migliore, ci sono modi per rendere il lavoro in Linux molto più semplice e che puoi eliminare tutti quelli che ti servono in una volta.

Ad esempio, potresti voler rimuovere solo quelli che iniziano con un determinato nome o quelli che hanno un'estensione specifica e così via. Tutto questo è possibileIn effetti, in altre occasioni ho già mostrato tutorial simili in LxA. Qui puoi seguire il tutorial passo passo e in modo semplice per poter cancellare tutti quei file che vuoi, tranne quello che vuoi salvare.

E la cosa migliore è quella non avrai bisogno di installare alcun programma, può essere fatto facilmente con comandi come rm e find. Cioè, programmi che sono già preinstallati su qualsiasi distribuzione Linux. E, naturalmente, il metodo si baserà sulla ricerca di schemi e sull'utilizzo di tali corrispondenze per rimuovere solo ciò che desideri.

Bene, per eliminare lì diverse alternative, Quali sono…

Rimuovi i file da una directory con rm

Bene, per poter utilizzare il file comando rm Per eliminare ciò che ti senti, devi conoscere prima alcuni modi per identificare i modelli:

  • * (elenco di modelli) - corrisponde a zero o più occorrenze dei modelli specificati
  • ? (elenco di modelli) - corrisponde a zero o una occorrenza dei modelli specificati
  • + (elenco pattern) - corrisponde a una o più occorrenze dei modelli specificati
  • @ (elenco pattern) - corrisponde a uno dei modelli specificati
  • ! (elenco pattern) - corrisponde a qualsiasi cosa tranne uno dei modelli dati

a abilita extglob Per utilizzarli, devi prima eseguire il seguente comando:

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

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

occhio! Non lo specifico, ma si presume che tu abbia i permessi per fare queste operazioni e che tu sia all'interno di quella directory quando esegui il comando rm. Fai attenzione, perché se lo esegui in un altro percorso, potresti finire per eliminare file che non desideri. Cioè, prima di eseguire questi comandi, assicurati di aver inserito la directory che desideri con cd.

Ora puoi usare rm per rimuovere quello che vuoi. Per esempio, eliminare tutti i file da una directory tranne quelli che corrispondono al nome «Lxa»:

rm -v !("lxa")

Puoi anche specificare due o più nomi che non desideri eliminare. Ad esempio, per evitare di rimuovere "lxa" e "desdelinux":

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

Puoi eliminare tutti i file, meno quelli con estensione .mp3. Per esempio:

 rm -v !(*.mp3) 

Alla fine, puoi tornare a disabilita extglob:

 shopt -u extglob 

Rimuovi i file da una directory con find

Un'altra alternativa a rm è usa find per rimuovere tutto ciò che desideri. Puoi usare pipe e xargs con rm, o usare l'opzione -delete per trovare. Cioè, la sintassi generica sarebbe:

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

Ad esempio, immagina di volerlo eliminare tutti i file in una directory tranne quelli con estensione .jpg, potresti usare uno di questi due comandi, poiché entrambi ottengono lo stesso risultato:

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

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

Invece, se lo volessi aggiungi qualche motivo in più, potresti farlo anche tu. Ad esempio, supponi di non voler rimuovere né .pdf né .odt da una directory:

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

Ovviamente potresti fare lo stesso con | e xargs come nell'esempio precedente. A proposito, abbiamo usato -non negare, ma puoi rimuoverlo per renderlo positivo, cioè per rimuovere i modelli di corrispondenza e non escluderli.

Elimina i file da una directory utilizzando la variabile GLOBIGNORE

Infine c'è Un'altra alternativa per trovare e rm, e utilizza una variabile di ambiente per puntare ai file che si desidera rimuovere o escludere. Ad esempio, immagina di voler eliminare tutti i file in una directory chiamata Download, salvando i file .pdf, .mp3 e .mp4. In tal caso, potresti fare quanto segue:

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


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.