Introduzione
Lo spostamento di file e directory è una delle attività di base che spesso è necessario eseguire su un sistema Linux.
In questo tutorial, spiegheremo come utilizzare il comando mv
per spostare file e directory.
Come usare il comando mv
Il comando mv
(abbreviato da move) viene utilizzato per rinominare e spostare file e directory da una posizione a un'altra. La sintassi per il comando mv
è la seguente:
mv [OPTIONS] SOURCE DESTINATION
Il parametro SOURCE
può essere uno, o più file o directory, e DESTINATION
può essere un singolo file o una directory.
- Quando più file o directory sono indicati come un
SOURCE
,DESTINATION
deve essere una directory. In questo caso, i fileSOURCE
vengono spostati nella directory di destinazione. - Se si specifica un singolo file come
SOURCE
e laDESTINATION
è una directory esistente, il file viene spostato nella directory specificata. - Se specifichi un singolo file come
SOURCE
e un singolo file comeDESTINATION
, stai rinominando il file . - Quando
SOURCE
è una directory eDESTINATION
non esiste,SOURCE
verrà rinominataDESTINATION
. Altrimenti, seDESTINATION
esiste, può essere spostato all'interno della directoryDESTINATION
.
Per spostare un file o una directory, è necessario disporre delle autorizzazioni di scrittura su entrambi SOURCE
e DESTINATION
. Altrimenti, riceverai un errore di autorizzazione negata.
Ad esempio, per spostare il file file1
dalla directory di lavoro corrente alla directory /tmp
, eseguire:
mv file1 /tmp
Per rinominare un file è necessario specificare il nome del file di destinazione:
mv file1 file2
La sintassi per lo spostamento delle directory è la stessa di quando si spostano i file. Nel seguente esempio, se la directory dir2
esiste, il comando si sposterà dir1
all'interno di dir2
. Se dir2
non esiste, dir1
verrà rinominato in dir2
:
mv dir1 dir2
Spostare più file e directory
Per spostare più file e directory, specificare i file che si desidera spostare come origine. Ad esempio, per spostare i file file1
e file2
nella directory dir1
digitare:
mv file1 file2 dir1
Il comando mv
consente anche di utilizzare la corrispondenza dei tipi di file. Ad esempio, per spostare tutti i file pdf
dalla directory corrente alla directory ~/Documents
, utilizzare:
mv *.pdf ~/Documents
Opzioni di comando di mv
Il comando mv
accetta diverse opzioni che influiscono sul comportamento predefinito del comando.
In alcune distribuzioni Linux, mv
può essere un alias del comando mv
con un set personalizzato di opzioni. Ad esempio, in CentOS mv
è un alias di mv -i
. Puoi scoprire se mv
è un alias usando il comando type
:
type mv
Se mv
è alias, l'output sarà simile al seguente:
mv is aliased to `mv -i'
Se vengono fornite opzioni in conflitto, l'ultima ha la precedenza.
Chiedi prima di sovrascrivere
Per impostazione predefinita, se esiste il file di destinazione, verrà sovrascritto. Per richiedere la conferma, utilizzare l'opzione -i
:
mv -i file1 /tmp
mv: overwrite '/tmp/file1'?
Per sovrascrivere il tipo di file digitare y
o Y
.
Forza la sovrascrittura
Se si tenta di sovrascrivere un file di sola lettura, il comando mv
chiederà se si desidera sovrascrivere il file:
mv -i file1 /tmp
mv: replace '/tmp/file1', overriding mode 0400 (r--------)?
Per evitare la richiesta di conferma, utilizzare le opzioni -f
:
mv -f file1 /tmp
Questa opzione è particolarmente utile quando è necessario sovrascrivere più file di sola lettura.
Non sovrascrivere i file esistenti
L'opzione -n
permette al comando mv
di non sovrascrivere mai alcun file esistente:
mv -f file1 /tmp
Se file1
esiste, il comando sopra non farà nulla. Altrimenti sposterà il file nella directory/tmp
.
Backup dei file
Se il file di destinazione esiste, è possibile crearne un backup utilizzando l'opzione -b
:
mv -b file1 /tmp
Il file di backup avrà lo stesso nome del file originale con una tilde (~
) aggiunta ad esso.
Utilizzare il comando ls per verificare che il backup sia stato creato:
ls /tmp/file1*
/tmp/file1 /tmp/file1~
Uscita dettagliata
Un'altra opzione che può essere utile è -v
. Quando viene utilizzata questa opzione, il comando stampa il nome di ciascun file spostato:
mv -i file1 /tmp
renamed 'file1' -> '/tmp/file1'
Conclusione
Il comando mv
viene utilizzato per spostare e rinominare file e directory.
Per maggiori informazioni sul comando mv
eseguire questo comando da terminale:
man mv