Utilizzo del comando cp in Linux
acquisire familiarità con il comando cp per copiare file e directory nella riga di comando di Linux.
Il comando cp è uno dei comandi Linux essenziali che probabilmente utilizzerai regolarmente.
Come indica il nome, cp sta per copia e viene utilizzato per copiare file e directory nella riga di comando di Linux.
È uno dei comandi più semplici con solo poche opzioni ma ciò non significa che non puoi saperne di più.
Prima di vedere alcuni esempi pratici del comando cp, ti consiglio di familiarizzare con il concetto di percorso assoluto e relativo perché dovrai utilizzarli mentre copi i file da un posto all'altro.
Copia un file
L'uso più semplice e comune del comando cp è per copiare file. Per farlo, devi solo specificare il file sorgente e la destinazione in cui desideri "incollare" il file.
cp source_file destination_directory
Rinominare il file durante la copia
Puoi anche rinominare il file mentre lo copi in un'altra posizione. È simile alle opzioni "salva con nome" che vedi negli editor di testo.
Per questo, devi menzionare il nuovo nome del file insieme al percorso.
cp source_file destination_directory/new_filename
Copia più file
Puoi anche copiare più file in un'altra posizione.
cp file1 file2 file3 destination_directory
In questo caso non è possibile rinominare i file.
Naturalmente, puoi utilizzare l'espansione con caratteri jolly e copiare file di un certo tipo in un'altra posizione:
cp *.txt destination_directory
Evitare di sovrascrivere durante la copia dei file
Se stai copiando file1.txt in una directory in cui esiste già un file denominato file1.txt, verrà sovrascritto con il file che stai copiando.
Potresti non volerlo sempre. Questo è il motivo per cui il comando cp fornisce diverse opzioni per gestire la sovrascrittura.
La prima è la modalità interattiva con l'opzione -i
. Nella modalità interattiva ti verrà chiesto di confermare o negare la sovrascrittura del file di destinazione.
cp -i source_file destination_directory
cp: overwrite 'destination_directory/source_file'?
Premi Y per sovrascrivere e N per saltare la copia del file.
L'opzione -n
impedisce completamente la sovrascrittura. I file di destinazione non verranno sovrascritti con questa opzione.
cp -n source_file destination_directory
C'è anche un'opzione -b
per creare automaticamente un backup se il file di destinazione verrà sovrascritto. B sta per backup, presumo.
cp -b source_file destination_directory
E infine, c'è l'opzione 'aggiorna' -u
che sovrascriverà il file di destinazione se è più vecchio del file di origine o se il file di destinazione non esiste.
cp -u source_file destination_directory
Copiare directory (cartelle)
Il comando cp viene utilizzato anche per copiare le directory nella riga di comando di Linux.
È necessario utilizzare l'opzione ricorsiva -r
per copiare le directory.
cp -r source_dir destination_dir
Puoi anche copiare più directory in un'altra posizione:
cp -r dir1 dir2 dir3 target_directory
Conserva gli attributi durante la copia
Quando copi un file in un'altra posizione, il timestamp, l'autorizzazione del file e persino la proprietà vengono modificati.
Questo è il comportamento normale. Ma in alcuni casi potresti voler preservare l'attributo originale anche quando copi il file.
Per preservare gli attributi, usa l'opzione -p
:
cp -p source_file destination_directory
Esiste anche l'opzione
-a
per la modalità archivio. Preserverà anche gli ACL.
🏋️ Tempo di esercizio
Vuoi esercitarti un po' con il comando cp? Ecco per te alcuni semplici esercizi.
Apri un terminale e crea una directory denominata
practice_cp
Ora copia il file /etc/services in questa directory appena creata.
Apportare alcune piccole modifiche al file dei servizi copiato nella directory pratica.
Ora copia nuovamente il file /etc/services ma in modalità aggiornamento. Cambia qualcosa? Osservare.
Cerca nella directory /var/log e copia i file di registro che iniziano con mail nella directory della tua pratica
Ora torna alla tua directory home e crea una nuova directory denominata new_dir (beh, non potevo pensare a niente di meglio)
Copia la directory practice_cp in new_dir
Dovrebbe essere un esercizio abbastanza buono per te. Divertiti ad imparare i comandi di Linux con It's FOSS.