cp come un amanuense
Keywords: guide

Next: Eliminare file con rm Up: Spostare Informazioni Previous: Spostare Informazioni

## `cp` come un amanuense

`cp` [-i] origine destinazione
`cp` [-i] file1 file2 ...fileN directory di destinazione4.7
`cp` è uno strumento molto utile sotto Unix, ed estremamente potente: permette ad una persona di copiare più informazioni in un secondo di un monaco amanuense in un anno. Fate attenzione con `cp` se non avete molto spazio nel disco. Nessuno vuole vedere il messaggio `Error saving-disk full` mentre sta copiando dei dati importanti. `cp` può anche sovrascrivere i file esistenti senza avvisare--parlerò di questi pericoli più avanti. Per prima cosa parleremo della prima linea del modello del comando: il primo parametro di `cp` è il file da copiare, il secondo è dove copiarlo. Si può copiare con un nuovo nome o su una diversa directory. Proviamo alcuni esempi:
56#56
Con il primo `cp` ho copiato il file `/etc/passwd` , che contiene i nomi di tutti gli utenti del sistema UNIX e le loro password (criptate), nella mia home directory. `cp` non elimina il file sorgente; in questo modo non ho fatto niente che possa danneggiare il sistema. Così adesso esistono due copie di `/etc/passwd` nel mio sistema, entrambe chiamate `passwd`, una nella directory `/etc` e una in `/home/larry`. Poi ho creato una terza copia di `/etc/passwd` quando ho scritto `cp passwd frog`--le tre copie sono: `/etc/passwd`, `/home/larry/passwd` e `/home/larry/frog`. Il contenuto di questi tre file è lo stesso, anche se hanno nomi diversi. `cp` può copiare file tra directory se il primo parametro è un file e il secondo una directory; in questo caso, il nome breve del file resta lo stesso. Può copiare un file e cambiarne il nome se entrambi i parametri sono nomi di file. Questo è un pericolo di `cp`: se io avessi scritto `cp /etc/passwd /etc/group`, `cp` avrebbe creato un nuovo file con contenuto identico a `passwd` e l'avrebbe chiamato `group`, ma se `/etc/group` esisteva già, `cp` avrebbe distrutto il vecchio file senza darvi la possibilità di salvarlo! (Non avrebbe nemmeno stampato un messaggio facendovi presente che stavate distruggendo un file copiandocene un altro sopra!) Vediamo un altro esempio di `cp`:
57#57
Come ho usato `cp`? Evidentemente `cp` accetta più di due parametri (è la seconda linea nel modello del comando). Quello che ha fatto il comando precedente è stato copiare tutti i file elencati (`frog` e `passwd`) e metterli nella directory `passwd_version`. In effetti `cp` può prendere un numero qualsiasi di parametri, interpretando i primi n-1 parametri come file da copiare, e l' 58#58 come directory in cui copiarli. Non si possono rinominare i file quando se ne copiano più di uno alla volta--mantengono sempre il loro nome. Questo porta ad una domanda interessante: cosa succede se scrivo `cp inittab pippo pluto`, dove `inittab` e `pippo` esistono e `pluto` non è una directory? Provate e vedrete.

Next: Eliminare file con rm Up: Spostare Informazioni Previous: Spostare Informazioni