Rinomina massiva file in Linux
In molte distribuzioni Linux è possibile fare una rinomina massiva file (ovvero rinominare molti file contemporaneamente) tramite il comando rename.
In realtà rename non è un comando di sistema, ma un programma scritto in Perl presente di default in molte distribuzioni Linux
La sua sintassi è semplicissima:
rename [-v] [-n] [-f] perlexpr [filenames]
dove
- v,n,f: opzioni:
- v: verbose, ovvero stampa nel terminale qualunque file elaborato ed il relativo risultato
- n: no act, ovvero simula il comando senza effettivamente eseguire la rinomina. Utilissimo e consigliatissimo per provare il comando prima di eseguirlo in effettivo
- f: force, ovvero forza la sovrascrittura di eventuali file già presenti con lo stesso nome risultante dalla rinomina dei files elaborati
- perlexpr: espressione regolare indicante le istruzioni relative a cosa sostituire e con cosa
- filenames: indica quali file elaborare
Per capire meglio, vediamo alcuni esempi di rinomina massiva file
Esempio 1:
rename -v 's/.sh/.sh.bak/g' *.sh
in questo modo rinomino l'estensione di tutti i file .sh con .sh.bak
il significato delle varie parti dell'espressione regolare s/.sh/.sh.bak/g è il seguente:
- s = sostituisci
- .sh = stringa da cercare per la sostituzione.
- .sh.bak = nuova stringa che verrà messa al suo posto.
- g = globale, ovvero esegue la sostituzione per tutte le occorrenze della stringa (se non metto "g" fa solo la prima occorrenza)
Esempio 2:
rename -nv 's/Immagine/Oropa - /' Immagine*.*
in questo modo rinomino tutti i file che iniziano con "Immagine" sostituendo il testo "Immagine" con "Oropa - "
ATTENZIONE: avendo usato l'opzione -n simulo solamente il risultato senza eseguire effettivamente la rinomina
Eseguendo nuovamente lo stesso comando eliminando l'opzione -n il risultato sarà simile al seguente:
Immagine01.png renamed as Oropa - 01.png Immagine02.png renamed as Oropa - 02.png Immagine03.png renamed as Oropa - 03.png Immagine04.png renamed as Oropa - 04.png Immagine05.png renamed as Oropa - 05.png Immagine06.png renamed as Oropa - 06.png Immagine07.png renamed as Oropa - 07.png Immagine08.png renamed as Oropa - 08.png Immagine09.png renamed as Oropa - 09.png Immagine10.png renamed as Oropa - 10.png Immagine11.png renamed as Oropa - 11.png Immagine12.png renamed as Oropa - 12.png
Esempio 3:
rename -v 's/Film - //' Film\ -\ *.*
in questo modo rinomino i file che iniziano con "Film - " eliminando il testo "Film - " perchè lo sostituisco con niente (//)
Esempio 4:
rename -v 's/.avi/ (Woody Allen).avi/' Woody*.*
in questo modo rinomino tutti i file che iniziano con "Woody" sostituendo l'estensione ".avi" con " (Woody Allen).avi"
Convertire MAIUSCOLE in minuscole e viceversa
Tramite il comando rename è anche possibile convertire i nomi file in lettere minuscole o MAIUSCOLE.
Ad esempio:
rename 'y/A-Z/a-z/' BLOG*.*
in questo modo converto in minuscolo tutti i nomi di file che iniziano con BLOG
Non sono molto pratico di terminale ma ho utilizzato con successo le tue indicazioni. Grazie
Grazie a te. Occhio che il teminale da dipendenza …quando comincia ad utilizzarlo diventa difficile non utilizzarlo 😉