Come rinominare i file in Linux

Sei nuovo al sistema operativo Linux? In tal caso, le operazioni comuni come la rinomina di file e cartelle potrebbero essere diverse da quelle a cui sei abituato. Ma non preoccuparti. Il concetto di rinominare file in Linux è simile a come viene fatto in altri sistemi operativi.

In questo tutorial, imparerai molti modi per rinominare singoli e multipli file in Linux, sia tramite GUI che eseguendo comandi nel terminale.

Cominciamo!

Prerequisiti

Per seguire questo tutorial, assicurati di avere quanto segue:

Rinomina file in Linux con un file manager

Se sei abituato a gestire i file tramite GUI, iniziamo questo tutorial per rinominare i file con un file manager. I file manager GUI sono comodi perché puoi vedere i file in modo chiaro. Uno di quei file manager disponibili in Linux è il vecchio file manager di GNOME, Nautilus. Questo tutorial dimostra come rinominare i file utilizzando il file manager Nautilus.

Gli altri file manager di Linux sono Konqueror, Dolphin, Krusader, Thunar, Nemo e Sunflower file manager. Questi file manager svolgono la stessa funzione, ma il modo di rinominare i file o le directory potrebbe essere leggermente diverso.

Avvia il terminale, quindi esegui il seguente comando per installare Nautilus (installa nautilus) con il gestore di pacchetti apt se non lo hai ancora nel tuo computer. Il comando sudo eleva il comando con i diritti di sudo/amministratore.

sudo apt install nautilus

Rinominare un singolo file

Rinominare un singolo file in Nautilus richiede solo pochi clic, come in Windows File Explorer.

Per rinominare un singolo file, apri Nautilus, fai clic destro sul file che desideri rinominare e scegli Rinomina, come mostrato di seguito.

Questo esempio si concentra sulla rinomina dei file, ma il processo è lo stesso sia per rinominare file che cartelle.

Renaming a Single File

Ora digita il nuovo nome del file per sostituire il nome originale del file, premi Invio o fai clic su Rinomina, e il gioco è fatto.

Entering New File Name

Rinominare più file utilizzando il Gestore dei file di Nautilus

Come Windows, Ubuntu ti offre più opzioni su come desideri rinominare contemporaneamente più file.

Per rinominare più file, seleziona tutti i file che desideri rinominare, fai clic destro su uno qualsiasi di essi e scegli Rinomina. Comparirà una finestra pop-up in cui puoi scegliere come desideri rinominare i file selezionati.

Renaming Multiple Files Using Nautilus.

Sotto, ci sono due opzioni tra cui scegliere a seconda di come desideri rinominare i file selezionati.

  • Rinomina utilizzando un modello – Questo ti consente di rinominare i file con incrementi.
  • Trova e sostituisci testo – Ti consente di trovare e sostituire determinati testi nei nomi dei file.

Rinominare i file utilizzando un modello

Per rinominare i file utilizzando un modello, seleziona l’opzione Rinomina utilizzando un modello.

Ora inserisci il nome di sostituzione nel campo vuoto per rinominare i file con un modello e fai clic sul pulsante +Aggiungi e scegli tra i modelli. Per questo tutorial, seleziona il primo (1,2,3,4) e fai clic su Rinomina. Questa opzione aggiunge numeri crescenti a ciascun file dopo il nome del file di sostituzione (Testo1, Testo2, …).

Renaming Files using a Template

Notare che i nomi dei file sono stati cambiati in Testo, seguiti da numeri crescenti.

Verifying File Names Changed to “Text” with Incrementing Num

Trovare e sostituire parole nei nomi dei file

Per rinominare più file con un nome file specifico, selezionare l’opzione Trova e sostituisci testo.

Inserire il testo nel campo Testo esistente e il testo di sostituzione nel campo Sostituisci con, quindi fare clic su Rinomina per sostituire il testo. Questa opzione trova e sostituisce determinati testi nei nomi dei file.

Replacing Texts in File Names

Ora puoi vedere qui sotto che hai sostituito la parola “Testo” con “File” in ogni nome file.

Verifying the word “Text” was replaced with the word “File” on Each File

Rinominare file con il comando mv

Se eseguire comandi è la tua cosa invece di navigare in una GUI, preparati a imparare come rinominare file in un terminale. Rinominare file nel terminale di Linux è simile a farlo in altri ambienti a riga di comando, come PowerShell. Esegui i comandi per rinominare il nome originale del file con il nome del file di destinazione, e questo è tutto.

Ci sono due scenari per rinominare un file. Il primo è rinominare un file dalla directory di lavoro, il secondo è specificando il percorso completo. Dai un’occhiata alla sintassi del comando mv qui sotto per rinominare un file, dove source è il nome originale e destination è il nome di sostituzione.

# Rinomina un file o una directory nella directory di lavoro
mv <source> <destination>
# Rinomina un file specificando il percorso completo
mv <~/mydir/source> <~/mydir/destination>

Rinominare un singolo file con il comando mv

Mentre la sintassi del comando mv è ancora fresca nella tua mente, proviamo a rinominare un singolo file.

Per dimostrare come rinominare un singolo file e una directory:

1. Avvia il tuo terminale, quindi esegui la serie di comandi di seguito per creare una directory e due file di testo.

# Crea una directory chiamata 'test'
mkdir test 
# Cambia directory in ~/test
cd test 
# Crea i file di testo chiamati 'file1.txt' e 'file2.txt'
touch file1.txt file2.txt 

2. Successivamente, esegui il comando ls per elencare i file all’interno della directory di lavoro. Qui sotto, puoi vedere che file1.txt e file2.txt esistono nella directory ~/test.

Listing Files in the Working Directory

3. Esegui uno dei comandi mv di seguito per rinominare file1.txt come file10.txt.

# Rinomina un file nella directory di lavoro
mv file1.txt file10.txt

# Rinomina un file specificando il percorso completo
mv ~/test/file1.txt ~/test/file10.txt

Rinominare una directory è la stessa cosa che rinominare un file, come ad esempio: mv ~/test ~/demo. Il simbolo ~ indica la directory home.

4. Infine, esegui nuovamente il comando ls per elencare i file nella directory di lavoro.

Qui sotto, puoi vedere che il file1.txt è stato rinominato come file10.txt.

Confirming file1.txt is renamed as file10.txt

Rinominare più file con un ciclo For

Se sei troppo occupato con altre attività e vuoi rinominare tutti i file in una sola volta, dovrai utilizzare un’istruzione di ciclo for come quella di seguito riportata.

Copia il codice di seguito come è, incollalo nel tuo terminale e premi Invio. Il codice di seguito esegue la scansione di ogni file di testo nella directory di lavoro e rinomina i file con “File” seguito da un numero crescente.

# Dichiarazione della variabile con valore impostato su 1
i=1 
# Scansione di ogni file di testo nella directory di lavoro
for file in *.txt; 
# Itera il comando di seguito finché tutti i file vengono scansionati
do 
  # Rinomina ogni file con "File" seguito da un numero crescente ($i)
	mv -- "$file" "File$i.txt"
  # Incrementa il valore corrente della variabile di 1
  i=$((i+1)) 
done

Incollare il codice nel terminale funziona bene, ma come buona pratica, è meglio creare un file di script da eseguire al suo posto.

Di seguito, puoi vedere in azione come il codice rinomina tutti i file.

Renaming Files with a For Loop

Rinomina i file in Linux con l’utilità rename

Se stai rinominando un singolo file nella tua routine quotidiana, il comando mv sarà sufficiente. Ma forse stai cercando di rinominare più file con lo stesso modello contemporaneamente? Ad esempio, rinominare file che iniziano con una determinata parola (file). In tal caso, installa l’utilità rename al suo posto.

L’utilità rename rinomina più file, modifica i formati dei nomi dei file e sovrascrive i file.

Per installare l’utilità rename, esegui uno dei comandi sottostanti a seconda della distribuzione Linux su cui stai lavorando.

# Installa l'utilità rename con il gestore di pacchetti apt per Ubuntu, Debian e Linux Mint
sudo apt install rename
# Installa l'utilità rename con il gestore di pacchetti dnf per CentOS, Fedora e Red Hat
sudo dnf install prename
# Installa l'utilità rename con il gestore di pacchetti pacman per Arch Linux / Manjaro Linux
sudo pacman -S perl-rename

Puoi vedere di seguito la sintassi del comando rename.

rename <options> <perlexpr> <files>

Rinominare più file

Con la sintassi del comando rename in mente, ora puoi rinominare i file che hanno lo stesso modello. Quello che è fantastico del comando rename è che non hai bisogno di dichiarare una funzione di loop per rinominare più file come hai fatto nella sezione “Rinominare più file con un ciclo For”.

Forse vuoi rinominare i file con determinate parole nel loro nome. In tal caso, dai un’occhiata all’espressione regolare di Perl ('s/file/myfile/') nel comando di esempio sottostante. Le espressioni regolari di Perl definiscono un modello di stringa basato sul linguaggio di programmazione Perl.

Per evitare di rinominare erroneamente altri file, elenca tutti i file interessati prima di rinominarli aggiungendo l’opzione -n, come mostrato di seguito.

rename -n 's/file/myfile/' *.txt
Listing Affected Files Before Renaming

Ora esegui uno dei comandi rename seguenti per sostituire la parola file con myfile nel nome di ciascun file di testo all’interno della directory di lavoro o nella directory ~/test/*.txt.

Nell’espressione Perl ('s/file/myfile/'), il carattere s indica la sostituzione, cioè stai rinominando i file. Nota che l’opzione -v è aggiunta per restituire quali file sono stati rinominati dal comando.

# Sostituisci 'file' con 'myfile' nel nome di ciascun file nella directory di lavoro
rename -v 's/file/myfile/' *.txt
# Sostituisci 'file' con 'myfile' nel nome di ciascun file nella directory ~/test
rename -v 's/file/myfile/' ~/test/*.txt

Di seguito, puoi vedere che ogni parola “file” nei file di testo è stata rinominata in “myfile”.

Renaming a Files with the rename Command

Se preferisci rinominare tutti i file, rimuovi l’estensione del file quando specifici il percorso del file, ad esempio, rename -v 's/file/myfile/' ~/test/*

Cambiare estensioni dei file

Oltre ai nomi dei file, il comando rename cambia anche le estensioni dei file. Forse hai creato dei file con l’estensione del file sbagliata. In tal caso, specifica l’estensione del file da cambiare in un’espressione Perl quando esegui il comando rename.

Esegui il comando rename qui sotto per cambiare l’estensione di tutti i file (*) da .txt a .html nella directory ~/test. Il simbolo $ nell’espressione Perl corrisponde alla fine di una stringa (.txt) di ogni nome file, quindi il comando cambia solo le estensioni dei file .txt. E come per la rinomina di più file, aggiungi l’opzione -v per elencare ogni cambio che il comando effettua.

rename -v 's/.txt$/.html/' *.txt

Per rimuovere tutte le estensioni dei file, rimuovi la stringa di sostituzione nell’espressione Perl, così: rename -v 's/.txt$//' *.txt

Come puoi vedere nell’immagine qui sotto, le estensioni .txt sono state cambiate in .html

Changing File Extensions from .txt to .html

Cambiare i nomi dei file in maiuscolo e minuscolo

Invece di estensioni di file errate, potresti avere a che fare con nomi di file in minuscolo e viceversa. Forse stai cercando un file specificamente in maiuscolo, senza sapere che il nome del file è in minuscolo.

Linux è sensibile alle maiuscole e minuscole, quindi assicuriamoci di avere correttamente la maiuscola nel nome di ogni file. La maiuscola si riferisce fondamentalmente alla distinzione tra testi in minuscolo e maiuscolo.

Esegui uno dei comandi rename di seguito per cambiare tutti i nomi di file in minuscolo (a-z) nella directory di lavoro (*) in maiuscolo (A-Z) e viceversa.

# Cambia il nome del file da minuscolo a maiuscolo
rename -v 'y/a-z/A-Z/' *
# Cambia il nome del file da maiuscolo a minuscolo
rename -v 'y/A-Z/a-z/' *

Puoi vedere di seguito entrambi i risultati del cambio di maiuscole e minuscole nel nome di un file.

Changing File Name from Lowercase to Uppercase and Vice Versa

Sostituzione ed Eliminazione degli Spazi nei Nomi dei File

Come nel caso delle maiuscole e minuscole nel nome di un file, potresti avere problemi nel trovare i file se hanno degli spazi nei loro nomi. Risolviamo il problema sostituendo gli spazi con un carattere o rimuovendo gli spazi del tutto.

Esegui il comando rename di seguito per sostituire gli spazi con un trattino basso (_) in tutti i nomi dei file nella directory di lavoro. Poiché il trattino basso è un metacarattere, è necessario scapparlo con un backslash (\\_) per dichiarare il trattino basso letteralmente. I metacaratteri sono caratteri speciali con significati speciali in un programma informatico.

Si noti che il g nell’espressione Perl indica di sostituire tutte le corrispondenze (spazi) e non solo la prima.

rename -v 's/ /\\_/g' *

In seguito, è possibile vedere che il comando ha sostituito tutti gli spazi con gli underscore.

Replacing spaces with underscores in a file name

Per rimuovere tutti gli spazi nel nome di un file anziché sostituirli con un carattere, eseguire il comando di seguito.

Nell’espressione Perl riportata di seguito, l’asterisco dopo lo spazio vuoto (/ *) corrisponde a tutte le occorrenze di spazi nel nome di un file e non solo alla prima. Il carattere di sostituzione è vuoto (//), quindi il comando rename rimuove tutti gli spazi (g).

rename -v "s/ *//g" *

Ora è possibile vedere di seguito che tutti gli spazi sono stati rimossi da ciascun nome di file.

Removing all spaces in filenames

Capitalizzare la Prima Lettera di Ogni Parola nel Nome di un File

Se si preferisce mantenere gli spazi e capitalizzare la prima lettera di ogni parola nel nome di un file, sarà necessaria un’espressione Perl più complessa. Date un’occhiata al comando di esempio di seguito.

L’espressione Perl riportata di seguito corrisponde a qualsiasi singolo carattere (\\w) in un confine di parola (\\b) a condizione che il carattere non sia un punto né un apostrofo (?<![.'\\'']). Il comando rename tradurrà quindi quella lettera in maiuscolo (u$&).

rename -v 's/(?<![.'\\''])\\b\\w*/\\u$&/g' *

In seguito, è possibile vedere che ogni parola nei nomi dei file inizia con una lettera maiuscola, lasciando intatto l’estensione del file.

Capitalizing First Letter of Each Word in File Names

Conclusione

Durante questo tutorial, hai imparato molti modi per rinominare i file di Linux tramite GUI e terminale della riga di comando. Ora hai una solida comprensione di come manipolare i nomi dei file singoli e multipli contemporaneamente.

Perché non imparare lo scripting della shell di Linux e creare uno script per automatizzare la rinomina dei file in Linux?

Source:
https://adamtheautomator.com/rename-files-in-linux/