Dec 222012
 

Rinominare i file in massa non è possibile con il comando standard di Linux mv , ma è possibile raggiungere questo obiettivo in molti modi diversi, da un po’ di magia bash, a programmi che fanno esattamente questo, in questo articolo io lavorerò sia con il terminale che con strumenti grafici.




Primo esempio, si dispone di questi file:

myconf.sh
myfile2.txt
anotherfile.sh
test.sh

E si desidera aggiungere a tutti i file che terminano con .sh un .bak, queste sono alcune possibili soluzioni

Rename

Uso Base:

 rename perlexpr [ files ]

rename è uno script perl che può essere usato per rinominare molti file in base ad una espressione regolare.
L’argomento perlexpr è un’espressione Perl che si preve modifichi la stringa $ _ in Perl per almeno alcuni dei nomi di file specificati. Se un nome di file specificato non viene modificato con l’espressione, non verrà rinominato. Se non sono riportati nomi di file sulla riga di comando, i nomi dei file verranno letti attraverso lo standard input.

Quindi, nel nostro caso potremmo usare

rename 's/.sh/.sh.bak/g' *.sh

L’espressione 's/.sh/.sh.bak/g' significa:

s=sostituisci.
/.sh/=stringa da cercare per la sostituzione.
/.sh.bak/ = nuova stringa che verrà messa al suo posto.
g=globale, fa questo per tutte le occorrenze della stringa.

Questo sostituirà la stringa sh a sh.bak, quindi dovremo ottenere esattamente quello che vogliamo:

anotherfile.sh.bak
myconf.sh.bak
myfile2.txt
test.sh.bak

mmv

mmv, è un programma per spostare/copiare/aggiungere/collegare più file in base a una serie di caratteri jolly. Questa azione multipla viene eseguita in modo sicuro, cioè senza cancellazione inaspettata di file a causa di collisioni di nomi di destinazione con nomi esistenti o con altri nomi di destinazione. Inoltre, prima di fare qualsiasi cosa, MMV tenta di rilevare eventuali errori che potrebbero derivare dalla intera serie di azioni che sta per fare ed offre all’utente la possibilità di scegliere se abortire prima di cominciare, o procedere evitando le parti che causano questi problemi.

Questo comando ha molte opzioni che possono fare le cose differenti, come muoversi nelle sottodirectory e fare una copia di sicurezza di tutti i file che toccano, ma per il nostro piccolo esempio si può semplicemente utilizzare questo comando:

mmv \*.sh \#1.sh.bak


Bash Magic

Con i comandi bash si può fare quasi tutto in molti modi diversi, quindi mi limiterò a mostrare 1 modo semplice per rinominare più file usando il comando standard mv .

for i in *.sh; 
do mv $i `basename $i sh`sh.bak; 
done

Questo piccolo esempio utilizza il comando basename, che stampa il nome del file specificato nell’argomento con tutte le componenti di directory iniziali rimosse e in questo caso rimuove il suffisso finale, aggiungendone al file un altro.

Utilizzare Midnight Commander per rinominare più file

GNU Midnight Commander (noto anche come MC) è un file manager libero ed un clone del vecchio Norton Commander utilizzandolo è possibile rinominare più file, come spiegato di seguito.

  • Selezionare i file richiesti usando un’espressione regolare. Premere il pulsante + che chiederà la regex per selezionare i file. Per esempio, dare *.sh per evidenziare tutti i file con estensione .sh.
  • Rinominare tutti i file selezionati usando l’espressione regolare. Premere F6 che chiederà l’origine e la destinazione. Per questo esempio, dare *.sh come formato sorgente e *.sh.bak nella destinazione per rinominare in quello di cui abbiamo bisogno.

Rinominare in massa con Thunar

Thunar è un file manager per Linux e altri sistemi Unix-like, scritto usando il toolkit GTK + 2, e distribuito con Xfce dalla versione 4.4 RC1. Per rinominare i file con Thunar basta seguire queste semplici istruzioni:

Aprire thunar nella directory in cui si trovano i file e selezionare tutti
Ora premere F2 o andare in Modifica -> Rinominare per avviare la finestra di dialogo del Bulk Renamer che ha molte opzioni differenti:

Audio Tags – Consente di modificare i nomi dei file in base ai tag ID3
Insert Date/Time – Per inserire nei file la data e l’ora.
Insert/Overwrite – Consente di mettere un pezzo di informazione da qualche parte nel titolo del file, o sostituire una parte del nome del file con un testo del tutto nuovo.
Numbering – Per inserire un numero all’inizio di ogni file
Remove Characters – Consente di liberarsi di alcuni caratteri, utile per rimuovere gli spazi o underscore.
Search & Replace – Questo è lo strumento più potente e permette di usare espressioni regolari.
Uppercase/Lowercase – Questa opzione consente di “normalizzare” un testo, facendolo diventare tutto minuscolo.

Scegliete Search & Replace, cercate .sh e rimpiazzatelo con .sh.bak, tutto fatto !

thunar

Thunar è solo uno degli strumenti grafici che è possibile utilizzare, è possibile utilizzare anche altri strumenti come Nautilus o programmi specifici, quali:
KRename
Krename è un renamer molto potente per KDE. Consente di rinominare facilmente anche centinaia di file in un colpo solo.

GPRename
GPRename è un renamer batch completo per file e directory.

Popular Posts:

flattr this!

  2 Responses to “Come rinominare molti file su Linux”

  1. io che non ho mai avuto voglia di imparare le due regoline perlexpr userei un piu’ contadino

    rename “.sh” “.sh.bak” *

    saluti

  2. Un’ottima applicazione per rinominare files in bach molto ricco di funzioni (tra cui anteprima, pattern, sostituzioni, inserimenti/cancellazioni, uso di metadata per immagini o musica) è pyrenamer.

    ciao.

 Leave a Reply

(required)

(required)


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>