Linux Command · 4 min read · Sep 13, 2025

Comando mv di Linux spiegato per principianti (8 esempi)

Proprio come cp per copiare e rm per eliminare, Linux offre anche un comando integrato per spostare e rinominare file. Si chiama mv. In questo articolo, discuteremo le basi di questo strumento da riga di comando utilizzando esempi facili da comprendere. Si prega di notare che tutti gli esempi utilizzati in questo tutorial sono stati testati su Ubuntu 22.04 LTS.

Comando mv di Linux

Come già accennato, il comando mv in Linux viene utilizzato per spostare o rinominare file. Di seguito è riportata la sintassi del comando:

mv [OPZIONE]... [-T] ORIGINE DESTINAZIONE  
mv [OPZIONE]... ORIGINE... DIRECTORY  
mv [OPZIONE]... -t DIRECTORY ORIGINE...

Ecco cosa dice la pagina man al riguardo:

Rinomina ORIGINE in DESTINAZIONE, o sposta ORIGINE(i) in DIRECTORY.

I seguenti esempi in stile Q&A ti daranno un’idea migliore di come funziona questo strumento.

D1. Come utilizzare il comando mv in Linux?

Se vuoi semplicemente rinominare un file, puoi usare il comando mv nel seguente modo:

mv [nome_file] [nuovo_nome_file]

Ad esempio:

mv names.txt fullnames.txt

Allo stesso modo, se la necessità è spostare un file in una nuova posizione, usa il comando mv nel seguente modo:

mv [nome_file] [dest-dir]

Ad esempio:

mv fullnames.txt /home/himanshu/Downloads

D2. Come assicurarsi che mv chieda prima di sovrascrivere?

Per impostazione predefinita, il comando mv non chiede quando l’operazione comporta la sovrascrittura di un file esistente. Ad esempio, lo screenshot seguente mostra che il file full_names.txt esistente è stato sovrascritto da mv senza alcun avviso o notifica.

Tuttavia, se lo desideri, puoi forzare mv a chiedere utilizzando l’opzione da riga di comando -i.

mv -i [nome_file] [nuovo_nome_file]

Quindi gli screenshot sopra mostrano chiaramente che -i porta mv a chiedere il permesso all’utente prima di sovrascrivere un file esistente. Si prega di notare che nel caso si desideri specificare esplicitamente di non voler che mv chieda prima di sovrascrivere, utilizzare l’opzione da riga di comando -f.

D3. Come fare in modo che mv non sovrascriva un file esistente?

Per questo, è necessario utilizzare l’opzione da riga di comando -n.

mv -n [nome_file] [nuovo_nome_file]

Lo screenshot seguente mostra che l’operazione mv non è stata riuscita poiché esisteva già un file con il nome ‘full_names.txt’ e il comando aveva l’opzione -n.

Nota:

Se specifichi più di una tra -i, -f, -n, solo l'ultima avrà effetto.

D4. Come fare in modo che mv rimuova le barre finali (se presenti) dall’argomento sorgente?

Per rimuovere eventuali barre finali dagli argomenti sorgente, utilizzare l’opzione da riga di comando –strip-trailing-slashes come mostrato di seguito.

mv --strip-trailing-slashes [sorgente] [destinazione]

Ecco come la documentazione ufficiale spiega l’utilità di questa opzione:

Questo è utile quando un argomento sorgente può avere una barra finale e specifica un collegamento simbolico a una directory. Questo scenario è in effetti piuttosto comune perché alcune shell possono automaticamente aggiungere una barra finale quando eseguono il completamento del nome file su tali collegamenti simbolici. Senza questa opzione, `mv`, ad esempio, (tramite la funzione di rinomina del sistema) deve interpretare una barra finale come una richiesta di dereferenziare il collegamento simbolico e quindi deve rinominare la *directory* indirettamente referenziata e non il collegamento simbolico. Anche se può sembrare sorprendente che tale comportamento sia il predefinito, è richiesto da POSIX ed è coerente con altre parti di quel standard.

D5. Come fare in modo che mv tratti la destinazione come un file normale?

Per essere sicuro che l’entità di destinazione sia trattata come un file normale (e non come una directory), utilizzare l’opzione da riga di comando -T.

mv -T [sorgente] [destinazione]

Ecco perché esiste questa opzione da riga di comando:

Questo può aiutare a evitare condizioni di gara nei programmi che operano in un'area condivisa. Ad esempio, quando il comando ‘mv /tmp/sorgente /tmp/destinazione’ ha successo, non c'è garanzia che /tmp/sorgente sia stato rinominato in /tmp/destinazione: potrebbe essere stato rinominato in /tmp/destinazione/sorgente invece, se qualche altro processo ha creato /tmp/destinazione come directory. Tuttavia, se mv -T /tmp/sorgente /tmp/destinazione ha successo, non c'è dubbio che /tmp/sorgente sia stato rinominato in /tmp/destinazione.
Nella situazione opposta, in cui si desidera che l'ultimo operando sia trattato come una directory e si desidera un diagnostico altrimenti, è possibile utilizzare l'opzione --target-directory (-t).

D6. Come fare in modo che mv sposti il file solo quando è più recente del file di destinazione?

Supponiamo che esista un file chiamato fullnames.txt nella directory Downloads del tuo sistema, e ci sia un file con lo stesso nome nella tua home directory. Ora, vuoi aggiornare ~/Downloads/fullnames.txt con ~/fullnames.txt, ma solo quando quest’ultimo è più recente. In questo caso, dovrai utilizzare l’opzione da riga di comando -u.

mv -u ~/fullnames.txt ~/Downloads/fullnames.txt

Questa opzione è particolarmente utile nei casi in cui è necessario prendere tali decisioni da un script shell.

D7. Come fare in modo che mv emetta dettagli su ciò che sta facendo?

Se vuoi che mv produca informazioni che spiegano esattamente cosa sta facendo, utilizza l’opzione da riga di comando -v.

mv -v [nome_file] [nuovo_nome_file]

Ad esempio, gli screenshot seguenti mostrano mv che emette alcuni dettagli utili su ciò che ha fatto esattamente.

D8. Come forzare mv a creare un backup dei file di destinazione esistenti?

Puoi farlo utilizzando l’opzione da riga di comando -b. Il file di backup creato in questo modo avrà lo stesso nome del file di destinazione, ma con una tilde (~) aggiunta. Ecco un esempio:

Conclusione

Come avrai intuito ormai, mv è importante quanto cp e rm per la funzionalità che offre - rinominare/spostare file è anche una delle operazioni di base dopo tutto. Abbiamo discusso la maggior parte delle opzioni da riga di comando che questo strumento offre. Quindi puoi semplicemente esercitarti e iniziare a utilizzare il comando. Per saperne di più su mv, vai alla sua pagina man. Ci sono anche altri tutorial sui comandi Linux disponibili su HowtoForge, ad esempio per il comando tee.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.