Come rinominare file e directory in Linux

()

Come rinominare file e directory in Linux

Rinominare i file è una delle attività più basilari che è spesso necessario eseguire su un sistema Linux. È possibile rinominare i file utilizzando un file manager della GUI o tramite il terminale della riga di comando.Rinominare un singolo file è facile, ma rinominare più file contemporaneamente può essere una sfida, soprattutto per gli utenti che non conoscono Linux. In questo tutorial, mostreremo come utilizzare i comandi mve rename per rinominare file e directory.

Rinominare i file con il comando mv

Il comando mv (abbreviato in move) viene utilizzato per rinominare o spostare file da una posizione all’altra. La sintassi del mvcomando è la seguente:

mv [OPTIONS] source destination

La source può essere uno o più file o directory e destination può essere un singolo file o una directory.
Se specifichi più file come source, destinationdeve essere una directory. In questo caso, i sourcefile vengono spostati nella directory di destinazione. Se specifichi un singolo file come sourcee la destinationdestinazione è una directory esistente, il file viene spostato nella directory specificata. Per rinominare un file, è necessario specificare un singolo file come sourcee un singolo file come destinationdestinazione.
Ad esempio, per rinominare il file file1.txtcome file2.txteseguiresti:

mv file1.txt file2.txt

Rinominare più file con il comando mv
Il comando mv può rinominare solo un file alla volta, ma può essere usato insieme ad altri comandi come find o all’interno di bash for o while loop per rinominare più file. L’esempio seguente mostra come utilizzare il ciclo Bash for per rinominare tutti i .htmlfile nella directory corrente modificando l’ .htmlestensione in .php.

for f in *.html; do
mv — “$f” “${f%.html}.php”
done

Analizziamo il codice riga per riga:

La prima riga crea un forciclo e scorre un elenco di tutti i file con estensione .html.
La seconda riga si applica a ciascun elemento dell’elenco e sposta il file in uno nuovo sostituendolo .htmlcon .php. La parte ${file%.html}utilizza l’ espansione del parametro shell per rimuovere la .htmlparte dal nome del file. done indica la fine del segmento di loop.
Ecco un esempio utilizzando mvin combinazione con findper ottenere lo stesso come sopra:

find . -depth -name “*.html” -exec sh -c ‘f=”{}”; mv — “$f” “${f%.html}.php”‘ \;

Il comando find sta passando tutti i file che terminano con .html nella directory corrente a mv uno per uno utilizzando l’opzione -exec . La stringa {}è il nome del file attualmente in elaborazione.

Come puoi vedere dagli esempi sopra, rinominare più file usando il mvcomando non è un compito facile in quanto richiede una buona conoscenza dello scripting Bash.

Rinominare i file con il comando rename

Il comando rename viene utilizzato per rinominare più file. Questo comando è più avanzato mvin quanto richiede una conoscenza di base delle espressioni regolari. Esistono due versioni del renamecomando con sintassi diversa. In questo tutorial, utilizzeremo la versione Perl del renamecomando. Se non hai questa versione installata sul tuo sistema, puoi installarla facilmente usando il gestore di pacchetti della tua distribuzione.

Installa rename su Ubuntu e Debian

sudo apt install rename

Installa rename su CentOS e Fedora

sudo yum install prename

Installa rename su Arch Linux

yay perl-rename ## or yaourt -S perl-rename

La sintassi del comando rename è la seguente:

rename [OPTIONS] perlexpr files

Il comando rename rinominerà il in filesbase perlexpr all’espressione regolare specificata .
L’esempio seguente cambierà tutti i file con l’estensione .htmlin .php:

rename ‘s/.html/.php/’ *.html

È possibile utilizzare l’ -nopzione per stampare i nomi dei file da rinominare, senza rinominarli.

rename -n ‘s/.html/.php/’ *.html

L’output sarà simile a questo:

rename(file-90.html, file-90.php)
rename(file-91.html, file-91.php)
rename(file-92.html, file-92.php)
rename(file-93.html, file-93.php)
rename(file-94.html, file-94.php)

Per impostazione predefinita, il renamecomando non sovrascrive i file esistenti. Passa l’ -fopzione per consentire la sovrascrittura dei file esistenti:

rename -f ‘s/.html/.php/’ *.html

Di seguito sono riportati alcuni esempi più comuni di come utilizzare il renamecomando:

Sostituisci gli spazi nei nomi dei file con trattini bassi

rename ‘y/ /_/’ *

Converti i nomi dei file in minuscolo

rename ‘y/A-Z/a-z/’ *

Converti i nomi dei file in maiuscolo

rename ‘y/a-z/A-Z/’ *

Conclusione
Abbiamo mostrato come usare i comandi mv e rename per rinominare i file.
Ci sono anche altri comandi per rinominare i file in Linux, come mmv .
I nuovi utenti Linux che sono intimiditi dalla riga di comando possono utilizzare strumenti di ridenominazione batch della GUI come Métamorphose . Se hai domande o feedback, non esitare a lasciare un commento.

/ 5
Grazie per aver votato!

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?