Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Shell: rimozione selettiva dei file di una directory

Link copiato negli appunti

La shell delle distribuzioni Linux è estremamente potente e versatile, una volta studiata e padroneggiata rappresenta il miglior strumento per l'utente dei sistemi del Pinguino. Oggi le distribuzioni offrono ambienti grafici e strumenti che facilitano il lavoro dell'utente meno esperto e, spesso, l'uso della shell è riservato a poche operazioni come gli upgrade di sistema o gli interventi di emergenza.

Oggi però vogliamo proporre una dimostrazione di quanto può essere comodo lavorare con la shell; ad esempio: come dovremmo operare se volessimo cancellare tutti i file presenti in una directory tranne uno o più elementi che desideriamo, invece, conservare?

Prima di tutto rechiamoci sulla directory che ci interessa:

cd Prova

ora facciamoci elencare dal sistema i file presenti al suo interno:

ls -a

dovremmo ottenere un output simile a questo:

Prova10.txt Prova2.txt Prova4.txt Prova6.txt Prova8.txt
Prova1.txt Prova3.txt Prova5.txt Prova7.txt Prova9.txt

Una volta identificato il file che desideriamo salvare diamo il comando per cancellare tutti gli altri:

rm -f !(Prova10.txt)

rm non è l'unico comando che potrebbe fare al caso nostro, anche find infatti può tornarci utile:

find . ! -name Prova10.txt -delete

Anche in questo caso abbiamo ottenuto la cancellazione di tutti i file tranne quello da noi indicato.

Ora, quali dovrebbero essere le nostre istruzioni se non conoscessimo il nome del file da conservare ma solo la sua estensione? E' infatti possibile avere dentro una directory più tipi di file; ad esempio, eseguendo il backup di un CD musicale otterremo sia file di immagine (le cover) che degli MP3. Per cancellare tutte le cover possiamo usare il comando rm in questo modo:

rm !(*.mp3)

In questo modo nella directory rimarranno solo i file audio. Possiamo anche modificare l'ultimo comando per evitare la cancellazione di altri tipi di file; alcuni CD contengono ad esempio dei file PDF con i nomi delle tracce audio:

rm !(*.pdf|*.mp3)

Quindi usando l'opzione di concatenazione è possibile indicare alla shell di conservare anche i file PDF.

Ti consigliamo anche