
Il comando mv è uno dei comandi integrati di Linux e la sua funzione principale è spostare file e directory. Tuttavia, la funzione del comando mv non si limita allo spostamento di file; svolge anche una serie di altri compiti. In Linux, mv sta per move.
In questo tutorial impareremo come spostare file e directory in Linux usando mv Command.
Come usare il comando mv
Il comando mv viene utilizzato per spostare file e directory da una posizione all'altra. Quando si sposta il comando mv, eliminare il file o la directory originale. Ma attenderà che i file/le directory vengano completamente spostati per terminare l'azione. Quando si sposta un file in una destinazione, se la destinazione ha già un file con lo stesso nome, verrà sovrascritto.
Puoi anche usare il comando mv per rinominare il nome del file e della directory. Se entrambi i nomi di file o le directory si trovano sullo stesso filesystem, risulta in una ridenominazione.
Il mv non rinominerà una directory in un'altra directory se la directory di destinazione contiene la stessa directory con i file. I messaggi "Directory non vuota" arrivano per questo motivo.
La sintassi di base del comando mv è la seguente.
Sintassi:
$ mv [Options] Source Destination
[Options]
si riferisce alle varie opzioni del comando mv. La Source
potrebbe essere un singolo file o directory o più file o directory. Alla Destination
, è possibile specificare un singolo file o directory.
Devi disporre dell'autorizzazione di scrittura su entrambi i Source
e la Destination
per spostare un file o una directory, altrimenti riceverai un errore di autorizzazione negata.
- Quando il
Source
è costituito da numerosi file o directory, laDestination
deve essere una directory. I file o le directory inSource
vengono spostati nellaDestination
directory.
Ad esempio, se dobbiamo spostare il text1.txt
file nel /dir1
directory, la sintassi sarebbe la seguente.
$ mv text1.txt /dir1
- Quando il
Source
è costituito da numerosi file o directory, laDestination
deve essere una directory. I file o le directory inSource
vengono spostati nellaDestination
directory.
- Quando il
Source
è un singolo file e laDestination
è una directory, il file viene spostato nellaDestination
directory.
- Quando la Sorgente è un singolo file e la Destinazione è un nome file, il file Sorgente viene rinominato in Nome file Destinazione.
- L'origine è una directory, così come la destinazione, ma la directory di destinazione non esiste. In questa situazione, la directory di origine verrà rinominata come directory di destinazione. Se la directory di destinazione esiste già, la directory di origine viene spostata in essa.
Come spostare più file o directory
Per spostare più file o directory, devi prima specificare il Source
i nomi dei file e la Destination
directory.
Ad esempio, per spostare i file di testo1, testo2 e testo3 nella directory dir1, utilizzare la seguente sintassi.
$ mv text1 text2 text3 dir1
Il comando mv supporta anche il pattern matching Ad esempio, puoi usare la seguente sintassi per spostare tutti i file di testo nella directory ~/Documents.
$ mv *.txt ~/Documents
Come rinominare un file o una directory
È possibile utilizzare il comando mv per rinominare un file o una directory.
Ad esempio, per rinominare un file da text1.txt a text2.txt, utilizzare la seguente sintassi.
$ mv text1.txt text2.txt
Ad esempio, se dobbiamo spostare la directory dir1 nella directory dir2, la sintassi sarebbe la seguente. Tuttavia, se la dir2 non esiste, la directory dir1 viene rinominata come dir2.
$ mv dir1 dir2
Opzioni comando mv
Il comando mv fornisce varie opzioni per scopi specifici. Alcune delle utili opzioni del comando mv sono:
Avviso prima di sovrascrivere
Se la Destination
esiste già un file o una directory, viene sovrascritta per impostazione predefinita. Il -i
l'opzione può essere utilizzata per visualizzare una richiesta di conferma. La seguente sintassi viene utilizzata per visualizzare i prompt prima della sovrascrittura.
$ mv -i Source Destination
Durante il tentativo di spostare file1 nella directory dir1 quando file1 esiste già in dir1, apparirà un messaggio come:
mv: overwrite 'dir1/file1'?
Se vuoi sovrascrivere digita y
o Y
.
Non sovrascrivere il file esistente
Per non sovrascrivere mai un file esistente, usa l'opzione -n insieme al comando mv, come mostrato nella seguente sintassi.
$ mv -n Source Destination
Quando si tenta di spostare file1 nella directory dir1, se file1 esiste già, il comando non farà nulla; in caso contrario, il file verrà spostato in dir1.
Sovrascrittura forzata
La seguente sintassi può essere utilizzata per forzare la sovrascrittura di un file senza visualizzare un messaggio di richiesta.
$ mv -f Source Destination
File di backup
Per eseguire il backup di un file in un file di destinazione esistente, utilizzare l'opzione della riga di comando -b. La seguente sintassi può essere utilizzata per eseguire il backup di un file.
$ mv -b Source Destination
Nel file di backup verrà visualizzata una tilde (~) con lo stesso nome dell'originale.
Conclusione
In questo tutorial, abbiamo imparato come usare il comando mv in Linux. Per maggiori informazioni fare riferimento a man mv.