
La ridenominazione delle directory è una delle operazioni più basilari che spesso è necessario eseguire su un sistema Linux. Puoi rinominare le directory dal file manager della GUI con un paio di clic o utilizzando il terminale della riga di comando.
Questo articolo spiega come rinominare le directory utilizzando la riga di comando.
Rinominare le directory #
Nei sistemi operativi simili a Linux e Unix, puoi usare mv
(a meno di sposta) comando per rinominare o spostare file e directory da una posizione all'altra.
La sintassi di mv
il comando per spostare le directory è il seguente:
mv [OPTIONS] source destination
Ad esempio, per rinominare la directory dir1
come dir2
correresti:
mv dir1 dir2
Quando si rinominano le directory, è necessario specificare esattamente due argomenti in mv
comando. Il primo argomento è il nome corrente della directory e il secondo è il nuovo nome.
È importante notare che se dir2
esiste già, dir1
viene spostato nella dir2
directory.
Per rinominare una directory che non si trova nella directory di lavoro corrente, devi specificare il percorso assoluto o relativo:
mv /home/user/dir1 /home/user/dir2
Rinominare più directory #
Rinominare una singola directory è un compito semplice, ma rinominare più directory contemporaneamente può essere una sfida, soprattutto per i nuovi utenti Linux.
Raramente è necessario rinominare più directory contemporaneamente.
Rinominare più directory con mv
#
Il mv
comando può rinominare solo un file alla volta. Tuttavia, può essere utilizzato insieme ad altri comandi come find
o all'interno di loop per rinominare più file contemporaneamente.
Ecco un esempio che mostra come usare Bash for
loop per aggiungere la data corrente ai nomi di tutte le directory nella directory di lavoro corrente:
for d in *; do
if [ -d "$d" ]; then
mv -- "$d" "${d}_$(date +%Y%m%d)"
fi
done
Analizziamo il codice riga per riga:
- La prima riga crea un ciclo e scorre un elenco di tutti i file.
- La seconda riga controlla se il file è una directory.
- La terza riga aggiunge la data corrente a ciascuna directory.
Ecco una soluzione per lo stesso compito usando mv
in combinazione con find
:
find . -mindepth 1 -prune -type d -exec sh -c 'd="{}"; mv -- "$d" "${d}_$(date +%Y%m%d)"' \;
Il find
il comando sta passando tutte le directory a mv
uno per uno usando il -exec
opzione. La stringa {}
è il nome della directory attualmente in elaborazione.
Come puoi vedere dagli esempi, rinominare più directory con mv
non è un compito facile in quanto richiede una buona conoscenza degli script Bash.
Rinominare più directory con rename
#
Il rename
comando viene utilizzato per rinominare più file e directory. Questo comando è più avanzato di mv
in quanto richiede una conoscenza di base delle espressioni regolari.
Esistono due versioni di rename
comando con sintassi diversa. Utilizzeremo la versione Perl di rename
comando. I file vengono rinominati in base all'espressione regolare perl data.
L'esempio seguente mostra come sostituire gli spazi nei nomi di tutte le directory nella directory di lavoro corrente con caratteri di sottolineatura:
find . -mindepth 1 -prune -type d | rename 'y/ /_/'
Per andare sul sicuro, passa il -n
opzione per rename
per stampare i nomi delle directory da rinominare senza rinominarle.
Ecco un altro esempio che mostra come convertire i nomi delle directory in minuscolo:
find . -mindepth 1 -prune -type d | rename 'y/A-Z/a-z/'
Conclusione #
Ti abbiamo mostrato come utilizzare il mv
comandi per rinominare le directory.
Se hai domande o feedback, sentiti libero di lasciare un commento.