Sei nuovo al sistema operativo Linux? In tal caso, le attività comuni come la ridenominazione di file e cartelle potrebbero essere diverse da quelle a cui sei abituato. Ma non ti preoccupare. Il concetto di rinominare i file in Linux è simile a come è fatto in altri sistemi operativi.
In questo tutorial, imparerai molti modi per rinominare file singoli e multipli in Linux, sia tramite GUI che eseguendo comandi in un terminale.
Iniziamo!
Indice
- Prerequisiti
- Rinominare i file con File Manager
- Rinominare un singolo file
- Rinominare più file utilizzando Nautilus File Manager
- Rinominare i file utilizzando un modello
- Trovare e sostituire le parole nei nomi dei file
- Ridenominazione di File con il Comando mv
- Rinominare un singolo file con il comando mv
- Rinominare più file con un ciclo For
- Rinominare i file in Linux con l’utilità rinomina
- Rinominare più file
- la Modifica delle Estensioni
- Cambiando i nomi dei file in maiuscolo e minuscolo
- Sostituzione e la Rimozione degli Spazi nei Nomi di File
- Capitalizzare la Prima Lettera di Ogni Parola in un File di Nome
- Conclusione
Prerequisiti
Per seguire questo tutorial, assicurati di avere quanto segue:
- Questo tutorial utilizza Ubuntu 18.04 LTS, ma altre distribuzioni Linux funzioneranno.
- Un account con accesso sudo / amministratore.
Rinominare i file con File Manager
Se siete abituati a gestire i file tramite GUI, iniziamo questo tutorial per rinominare i file con un file manager. GUI file manager sono pulite in quanto è possibile vedere i file in bella vista. Uno di quei file manager disponibili in Linux è l’ex file manager di GNOME, Nautilus. Questo tutorial dimostra rinominare i file utilizzando il file manager Nautilus.
Gli altri file manager di Linux sono Konqueror, Dolphin, Krusader, Thunar, Nemo file manager e Sunflower file manager. Questi file manager eseguono lo stesso compito, ma rinominare i file o le directory potrebbe essere leggermente diverso.
Avvia il tuo terminale, quindi esegui il comando qui sotto per installare Nautilus (install nautilus
) con il gestore di pacchetti apt
se non lo hai ancora sulla tua macchina. Il comando sudo
eleva il comando con diritti sudo / amministratore.
sudo apt install nautilus
Rinominare un singolo file
Rinominare un singolo file in Nautilus richiede solo pochi clic, come in Esplora file di Windows.
Per rinominare un singolo file, apri Nautilus, fai clic con il pulsante destro del mouse sul file che desideri rinominare e scegli Rinomina, come mostrato di seguito.
Questo esempio si concentra sulla ridenominazione dei file, ma il processo è lo stesso per rinominare sia i file che le directory.
Ora digitare il nuovo nome del file per sostituire il nome del file originale, premere Invio o fare clic su Rinomina, e il gioco è fatto.
Rinominare più file utilizzando Nautilus File Manager
Come Windows, Ubuntu ti dà più opzioni su come si desidera rinominare più file contemporaneamente.
Per rinominare più file, selezionare tutti i file che si desidera rinominare, fare clic destro su uno di essi e scegliere Rinomina. Apparirà una finestra pop-up in cui è possibile scegliere come rinominare i file selezionati.
Qui di seguito, ci sono due opzioni tra cui scegliere a seconda di come si desidera rinominare i file selezionati.
- Rinomina utilizzando un modello: consente di rinominare i file in incrementi.
- Trova e sostituisci testo: consente di trovare e sostituire determinati testi nei nomi dei file.
Rinominare i file utilizzando un modello
Per rinominare i file utilizzando un modello, selezionare l’opzione Rinomina utilizzando un modello.
Ora inserisci il nome sostitutivo nel campo vuoto per rinominare i file con un modello, quindi fai clic sul pulsante +Aggiungi e scegli tra i modelli. Per questo tutorial, selezionare il primo (1,2,3,4) e fare clic su Rinomina. Questa opzione aggiunge numeri incrementali a ciascun file dopo il nome del file sostitutivo (Text1, Text2,…).
Si noti che i nomi dei file sono stati modificati in Testo, seguiti da numeri incrementali.
Trovare e sostituire le parole nei nomi dei file
Per rinominare più file con un nome specifico, selezionare l’opzione Trova e sostituisci testo.
Immettere il testo nel campo Testo esistente e il testo sostitutivo nel campo Sostituisci con, quindi fare clic su Rinomina per sostituire il testo. Questa opzione trova e sostituisce alcuni testi nei nomi dei file.
Ora, puoi vedere sotto che hai sostituito la parola “Testo” con “File” in ogni nome di file.
Ridenominazione di File con il Comando mv
Se l’esecuzione di comandi che è la vostra cosa, invece di navigare in una GUI, preparatevi a imparare come rinominare i file in un terminale. Rinominare i file nel terminale Linux è simile a farlo in altri ambienti da riga di comando, come PowerShell. Si eseguono i comandi per rinominare il nome del file originale con il nome del file di destinazione, e il gioco è fatto.
Ci sono due scenari nella ridenominazione di un file. Il primo è rinominare un file dalla directory di lavoro e 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 sostitutivo.
# Rename a file or directory in the working directorymv <source> <destination># Rename a file by specifying the full pathmv <~/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 directory:
1. Avvia il tuo terminale, quindi esegui la serie di comandi qui sotto per creare una directory e due file di testo.
# Create a directory named 'test'mkdir test # Change directory to ~/testcd test # Create text files named 'file1.txt' and file2.txttouch file1.txt file2.txt
2. Quindi, eseguire il comando ls
per elencare i file all’interno della directory di lavoro. Sotto, puoi vedere quel file1.txt e file2.txt esiste nella directory ~ / test.
3. Eseguire uno dei comandi mv
sotto per rinominare file1.txt
come file10.txt
.
# Rename a file in the working directorymv file1.txt file10.txt# Rename a file by specifying the full pathmv ~/test/file1.txt ~/test/file10.txt
Rinominare una directory equivale a rinominare un file, in questo modo:
mv ~/test ~/demo
. Il simbolo~
indica la directory home.
4. Infine, eseguire nuovamente il comando ls
per elencare i file nella directory di lavoro.
Sotto, puoi vedere quel file1.txt è ora rinominato come file10.txt.
Rinominare più file con un ciclo For
Se sei troppo occupato con altre attività a portata di mano e vuoi rinominare tutti i file in una volta sola, dovrai utilizzare un’istruzione for loop come quella qui sotto.
Copia il codice qui sotto così com’è, incollalo nel tuo terminale e premi Invio. Il codice seguente analizza ogni file di testo nella directory di lavoro e rinomina i file con “File” seguito da un numero crescente.
# Declares variable with value set to 1i=1 # Scans each text file in the working directoryfor file in *.txt; # Iterate the command below until all files are scanneddo # Renames each file with "File" followed by incrementing number ($i)mv -- "$file" "File$i.txt" # Increments the variables current number value by 1 i=$((i+1)) done
Incollare il codice nel tuo terminale funziona bene, ma come buona pratica, è meglio se crei un file di script da eseguire.
Di seguito, puoi vedere in azione come il codice rinomina tutti i file.
Rinominare i file in Linux con l’utilità rinomina
Se stai rinominando un singolo file nella tua routine quotidiana, il comando mv
sarà sufficiente. Ma forse stai puntando a rinominare più file con lo stesso schema contemporaneamente? Ad esempio, rinominare i file che iniziano con una determinata parola (file). In tal caso, installare l’utilità rinomina invece.
L’utilità rinomina rinomina più file, cambia i formati dei nomi dei file e sovrascrive i file.
Per installare l’utilità rinomina, eseguire uno dei comandi seguenti a seconda della distribuzione Linux su cui si sta lavorando.
# Install rename utility with the apt package manager for Ubuntu, Debian, and Linux Mintsudo apt install rename# Install rename utility with the dnf package manager for CentOS, Fedora, and Red Hatsudo dnf install prename# Install rename utility with the pacman package manager for Arch Linux / Manjaro Linuxsudo pacman -S perl-rename
Puoi vedere sotto la sintassi del comando rename
.
rename <options> <perlexpr> <files>
Rinominare più file
Con la sintassi del comando rename
in mente, è ora possibile rinominare i file che hanno lo stesso modello. La cosa fantastica del comando rename
è che non è necessario dichiarare una funzione 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 su di essi. In tal caso, dai un’occhiata all’espressione regolare Perl ('s/file/myfile/'
) nel comando di esempio seguente. Le espressioni regolari Perl definiscono un modello di stringa basato sul linguaggio di programmazione Perl.
Per evitare di rinominare erroneamente altri file, elencare tutti i file interessati prima di rinominarli aggiungendo l’opzione -n
, come mostrato di seguito.
rename -n 's/file/myfile/' *.txt
Ora esegui uno dei comandi rename
qui sotto per sostituire la parola file
con myfile
nel nome di ogni file di testo all’interno della directory di lavoro o della directory ~/test/*.txt
.
Nell’espressione Perl ('s/file/myfile/'
), s
denota la sostituzione, il che significa che stai rinominando i file. Si noti che l’opzione -v
viene aggiunta per restituire i file rinominati dal comando.
# Replace 'file' with 'myfile' in each file's name in the working directoryrename -v 's/file/myfile/' *.txt# Replace 'file' with 'myfile' in each file's name in the ~/test directoryrename -v 's/file/myfile/' ~/test/*.txt
Di seguito, puoi vedere che ogni parola “file” nei file di testo viene rinominata in “myfile.”
Se si desidera rinominare tutti i file, invece, rimuovere l’estensione del file quando si specifica il percorso del file, per esempio,
rename -v 's/file/myfile/' ~/test/*
la Modifica delle Estensioni
Altri di nomi di file, il rename
comando anche di rinominare le estensioni dei file. Forse hai creato file con l’estensione del file sbagliata. In tal caso, si specificherà l’estensione del file da modificare in un’espressione Perl quando si esegue il comando rename
.
Eseguire il comandorename
di seguito per modificare 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
) a ciascun nome di file, quindi il comando cambia solo le estensioni di file .txt
. E come con la ridenominazione di più file, aggiungi l’opzione -v
per elencare ogni modifica apportata dal comando.
rename -v 's/.txt$/.html/' *.txt
Per rimuovere invece tutte le estensioni di file, rimuovere la stringa sostitutiva nell’espressione Perl, in questo modo:
rename -v 's/.txt$//' *.txt
Come si vede nell’immagine qui sotto, il .estensioni txt cambiato in .html
Cambiando i nomi dei file in maiuscolo e minuscolo
Invece di estensioni di file errate, potresti avere a che fare con i nomi dei file in minuscolo e viceversa. Forse stai cercando di trovare un file specificamente in maiuscolo, non sapendo che il nome del file è in minuscolo.
Linux è case-sensitive, quindi assicuriamoci di avere il caso della lettera di ogni nome di file. Letter case è fondamentalmente la distinzione dei testi tra minuscolo e maiuscolo.
Eseguire uno dei comandirename
di seguito per modificare tutti i nomi di file minuscoli (a-z
) nella directory di lavoro (*
) in maiuscolo (A-Z
) e viceversa.
# Change filename from lowercase to uppercaserename -v 'y/a-z/A-Z/' *# Change filename from uppercase to lowercaserename -v 'y/A-Z/a-z/' *
Puoi vedere di seguito entrambi i risultati della modifica di un caso di lettera di nome file.
Sostituzione e la Rimozione degli Spazi nei Nomi di File
Come un nome di file lettera del caso, si potrebbe avere difficoltà a trovare i file se hanno spazi nei nomi di file. Risolviamo questo sostituendo gli spazi con un carattere o rimuovendo del tutto gli spazi.
Eseguire il comandorename
di seguito per sostituire gli spazi in tutti i nomi di file con un carattere di sottolineatura (_
) nella directory di lavoro. Poiché underscore è un metacarattere, sfuggilo con una barra rovesciata (\_
) per dichiarare letteralmente il carattere di sottolineatura. I metacaratteri sono caratteri speciali con significati speciali in un programma per computer.
Si noti che g
nell’espressione Perl dice al comando di sostituire tutte le corrispondenze (spazi) e non solo la prima.
rename -v 's/ /\_/g' *
Di seguito, puoi vedere che il comando ha sostituito tutti gli spazi con caratteri di sottolineatura.
Per rimuovere tutti gli spazi in un nome di file invece di riempirli con un carattere, eseguire il comando qui sotto.
Nell’espressione Perl sottostante, l’asterisco dopo lo spazio vuoto (/ *
) corrisponde a tutte le occorrenze di spazi in un nome di file e non solo al primo. Il carattere di sostituzione è vuoto (//
), quindi il comando rename
rimuove tutti gli spazi (g
).
rename -v "s/ *//g" *
Ora puoi vedere sotto che tutti gli spazi vengono rimossi da ogni nome di file.
Capitalizzare la Prima Lettera di Ogni Parola in un File di Nome
Se si preferisce mantenere gli spazi e rendere maiuscola la prima lettera di ogni parola in un file di nome, invece, avrete bisogno di una più complessa espressione Perl. Dai un’occhiata al comando di esempio qui sotto.
L’espressione Perl sottostante corrisponde a qualsiasi singolo carattere (\w
) in un limite di parole (\b
) purché 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' *
Di seguito, puoi vedere che ogni parola nei nomi dei file inizia con una lettera maiuscola lasciando intatte le estensioni dei file.
Conclusione
Nel corso di questo tutorial, hai imparato molti modi per rinominare i file Linux tramite GUI e terminale della riga di comando. Ora hai una solida comprensione di come manipolare i nomi per singoli e più file contemporaneamente.
Perché non imparare Linux shell scripting, e creare uno script per automatizzare rinominare i file in Linux?