Top

Copiare e spostare file via terminale su Ubuntu

Tra le tante operazioni che effettuiamo quotidianamente, spesso senza rendercene conto, con il computer la gestione dei file ricopre un ruolo primario.

Copiare o spostare un file è un’operazione relativamente semplice (per chi ha la più piccola dimestichezza con un pc) e si fa quasi esclusivamente da interfaccia grafica. Ma se volessimo effettuarla da terminale? Come fare?

Per quanto riguarda l’ambiente Linux e in particolare Ubuntu, ci basta imparare qualche semplice comando che, dato con le opportune opzioni, ci permette di copiare o spostare senza problemi qualsiasi file.

In realtà questi comandi sono anche abbastanza semplici da ricordare perché sono composti da soltanto due lettere: cp e mv.

cp sta per copy (copia) e indovinate un po’ a cosa serve? A copiare!

L’utilizzo è semplicissimo, scriviamo prima il comando poi la cartella di origine del file e la cartella di destinazione:

Se, nell’atto di copiare, vogliamo anche rinominare il file, per esempio da nome_vecchionome_nuovo specifichiamo il nome nella destinazione:

Se vogliamo duplicare una cartella le cose cambiano leggermente: dobbiamo utilizzare l’opzione -r (ricorsivo) che ci permette di copiare anche i dati all’interno delle sottocartelle (e delle sottocartelle delle sottocartelle, e così via).

Per quanto riguarda il percorso di destinazione, possiamo indicare o meno il nome della nuova cartella (come si fa con i file).

Le opzioni più comuni da utilizzare con cp sono, oltre a recursive (-r), interactive (-i), archive (-a), update (-u) e verbose (-v).

Utilizzando l’opzione -i il terminale ci chiederà, quando necessario, se vogliamo sovrascrivere un file con lo stesso nome di quello che stiamo copiando. L’opzione -v, invece, stampa a video, man mano che li copia, i file duplicati.

Con -u copiamo i file soltanto quando questi ultimi sono più aggiornati nell’origine o quando questi mancano del tutto nella destinazione. Ci potrebbero essere problemi con l’opzione update quando nella destinazione è presente un file corrotto con lo stesso nome e con un timestamp (ultima modifica, in questo caso) successivo a quello dell’origine: in questo caso le condizioni perché -u non copi sono soddisfatte e il file corrotto non verrà sovrascritto.

Un’opzione che merita particolare attenzione è archive (-a) che corrisponde ad un -rp (-r -p, si può scrivere in entrambi i modi): mentre con -r quando copiamo una directory i dati riguardo alla creazione, ultima modifica e simili sono azzerati (una cartella che viene copiata alle 10:00, avrà come orario di creazione le 10:00), con -a oltre ai file vengono copiate anche le informazioni su modifiche, accessi e proprietari (cosa che avverrebbe con -p, preserve), in questo modo un file copiato alle 10:00 ma creato alle 9:00 avrà come orario di creazione le 9:00.

Molti utenti preferiscono -a a -r perché, così, la cartella di origine e quella di destinazione diventano pressoché identiche (vedi immagine).

Esempio cp -av

Nell’esempio utilizzo cp -av: copio una cartella mantenendone tutte le informazioni e in più cp stampa a video le operazioni.

Per quanto riguarda lo spostamento di un file, nell’ambiente Linux esiste il comando mv (che sta per move, muovi).

L’utilizzo è identico a cp (anche per quanto riguarda il rinominare):

Per spostare una cartella non c’è bisogno di aggiungere l’opzione -r e il comando risulta essere, quindi, così:

Le opzioni più utilizzate con mv sono, così come in cp, -v, -i (è possibile sovrascrivere solo directory vuote) e -u.

Archive (-a) non si rende necessario perché mv cerca sempre di mantenere le informazioni e gli attributi dei file.

Powered by WordPress. Designed by WooThemes