Copia file e directory. Comando flessibile che permette di copiare sia un file su una destinazione data, sia un numero arbitrario di file su una directory d'arrivo. Può essere utile anche come strumento di backup e in script.
E' comune in tutti gli Unix ma alcuni parametri possono variare.
cp [opzioni] sorgente destinazione
cp [opzioni] sorgenti... directory_destinazione
OPZIONI POSIX (Valide in tutti gli Unix)
-f
(--force) Forza la copia, rimuovendo i file di destinazione preesistenti, se esistenti.
-i
(--interactive) Chiede conferma prima di sovrascrivere i file di destinazione (il cp su linux è solitamente un alias di cp -i, per cui di default viene chiesta la conferma alla sovrascrittura)
-p
(--preserve) Preserva gli attributi dei file copiati (owner, group, permessi, data di ultima modifica e data di ultimo accesso).
-R
(--recursive) Copia le directory ricorsivamente (include file e sottodirectory) rispettando l'integrità di file speciali.
OPZIONI GNU (Tipiche di Linux e altri Unix che usano la versione GNU di cp)
-a
(--archive) Corrisponde a cp -dpR e conserva nella copia quanto possibile la struttura e gli attributi dei file originali. Da usare quando si intende fare il backup di directory e file.
-d
(--no-dereference) Copia link simbolici come link simbolici piuttosto che copiare i file da essi puntati, e conserva la relazione di hard link tra i file originali anche nelle copie.
-s
(--symbolic-link) Crea un link simbolico invece della copia vera e propria dei file o directory.
-u
(--update) Nel caso il file di destinazione esiste già, lo sovrascrive solo se ha data di modifica più vecchia.
-v
(--verbose) Stampa il nome di ogni file prima di copiarlo.
-b
(--backup) Crea copie di backup dei file che stanno per essere sovrascritti o rimossi.
-S SUFFISSO
Aggiunge il SUFFISSO specificato a tutti file di backup.
Esempi
cp -a /etc /backup/
Copia tutta la directory /etc e i suoi contenuti nella directory /backup. Mantiene i link simbolici e i permessi inalterati.
cp /etc/grub.conf /tmp/
Copia il file /etc/grub.conf nella directory /tmp. Se /etc/grub.conf è un symlink, in /tmp/ si ritrova una copia del file a cui il link punta e non un symlink.
Capire, muoversi e modificare file e directory: /, .., . , cd, ls, cp, mv, rm, rmdir, mkdir. Uso di link e symlink.