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.

CommentaDi' la tua

Il tuo indirizzo email non sarà mostrato pubblicamente. I campi obbligatori sono contrassegnati da *