CP(1) CP(1)
NOME
cp - copia file e directory
SINTASSI
cp [opzioni] file percorso
cp [opzioni] file... directory
Opzioni POSIX: [-fipRr]
Opzioni GNU (forma breve): [-abdfilprsuvxPR] [-S SUFFISSO] [-V {numâ¤â¤�
bered,existing,simple}] [--sparse=QUANDO] [--help] [--version] [--]
DESCRIZIONE
cp copia file (o, eventualmente, directory). È possibile copiare sia un
file su una destinazione data, sia un numero arbitrario di file su una
directory d⤙arrivo. Se l⤙ultimo argomento indica una directory
esistente, cp copia ogni file sorgente su quella directory (mantenendo
lo stesso nome). Altrimenti, se sono indicati solo due file, copia il
primo sul secondo. Si ha un errore se l⤙ultimo argomento non è una
directory e sono presenti più di due argomenti non di opzione.
Perciò, «cp -r /a /b» copia /a su /b/a e /a/x su /b/a/x nel caso in cui
/b esiste già , ma copia /a su /b e /a/x su /b/x se /b non esisteva in
precedenza.
I permessi dei file e delle directory così create sono identici a
quelli dei file originali, AND 0777 e modificati dalla umask utente (a
meno che sia usata l⤙opzione -p). Durante la copia ricorsiva di direc�
tory, però, i permessi delle directory create ex novo sono quelli
finali OR S_IRWXU (0700), per permettere lettura, scrittura e ricerca
nella nuova directory al processo.
Copiando un file su se stesso, non viene fatto niente (a parte produrre
un eventuale messaggio d⤙errore). Copiando su un file esistente,
questo viene aperto con «open(path, O_WRONLY | O_TRUNC)». Copiando su
un file inesistente, questo viene creato con «open(path, O_WRONLY |
O_CREAT, mode)». Se ciò fallisce, il file esiste e ed era stata data
l⤙opzione -f, cp prova a cancellare (unlink) il file esistente, e in
caso di successo continua come per un file inesistente.
OPZIONI POSIX
POSIX riconosce quattro opzioni e mezza:
-f Rimuove i file di destinazione preesistenti, se necessario (vedi
sopra).
-i Chiede conferma per sovrascrivere file di destinazione
preesistenti (la domanda è scritta su stderr e la risposta letta
da stdin; la copia avviene solo in caso di risposta affermativa)
-p Conserva proprietario, gruppo, permessi (inclusi i bit setuid
e setgid), data di ultima modifica e data di ultimo accesso dei
file originali. Nel caso la duplicazione del proprietario o del
gruppo fallisca i bit setuid e setgid vengono azzerati (si noti
che alla fine originale e copia potrebbero ben avere diverse
date d⤙accesso, costituendo l⤙operazione di copia un accesso
all⤙originale).
-R Copia le directory ricorsivamente, facendo la cosa giusta incon�
trando oggetti diversi da file ordinari o directory (cioè, la
copia di una FIFO o un file speciale è una FIFO o un file spe�
ciale).
-r Copia le directory ricorsivamente, comportandosi in modo non
specificato con oggetti diversi da file ordinari o directory;
cioè è permesso, o meglio incoraggiato, che -r sia un sinonimo
di -R. In ogni caso, comportamenti bizzarri, come quello della
versione GNU attuale di cp (vedi oltre) non è vietato.
PARTICOLARI GNU
Di norma, i file sono scritti così come sono letti. Per eccezioni, vedi
--sparse oltre.
Di natura, cp non copia directory (ma vedi -r oltre).
cp rifiuta, di norma, di copiare un file su se stesso, con l⤙eccezione
seguente: se vengono date le opzioni --force --backup con identici sor�
genti e destinazioni , che si riferiscono ad un file normale, cp crea
un file di backup, normale o numerato come specificato nel modo usuale.
Questo torna utile quando si vuole semplicemente fare un backup di un
file esistente prima di modificarlo.
OPZIONI GNU
-a, --archive
Conserva nella copia quanto è possibile della struttura e degli
attributi dei file originali (ma non la struttura di directory).
Lo stesso di -dpR.
-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.
-f, --force
Rimuove i file di destinazione preesistenti e senza mai
chiederne conferma.
-i, --interactive
Chiede conferma per sovrascrivere i file normali preesistenti.
-l, --link
Esegue collegamenti fisici (hard link) piuttosto che copie per
le non-directory.
-p, --preserve
Conserva proprietario, gruppo, permessi e date dei file origi�
nali.
-P, --parents
Forma il nome di ognuno dei file destinazione aggiungendo al
nome della directory indicata uno slash (/) e il nome del file
originale. L⤙ultimo argomento dato a cp deve essere il nome di
una directory esistente. Per esempio, il comando «cp --parents
a/b/c dir_esistente» copia il file a/b/c su dir_esistente/a/b/c,
creando qualsiasi directory intermedia mancante.
-r Copia le directory ricorsivamente, copiando tutte le non-direc�
tory e i link non simbolici (FIFO e file speciali) come se fos�
sero file normali. In altre parole, provando a leggere dati da
ciascuna sorgente e scrivendoli sulla destinazione. Perciò, con
questa opzione, cp può impiantarsi indefinitivamente mentre
legge una FIFO o /dev/tty. Questo è un baco: ciò implica che
bisogna evitare -r e usare -R se non si conosce il contenuto
dell⤙albero che si sta copiando. L⤙apertura di un device ignoto,
uno scanner, per esempio, ha effetti sconosciuti sull⤙hardware.
-R, --recursive
Copia le directory ricorsivamente, rispettando le non-directory
(vedi -r sopra)
--sparse=QUANDO
Un «file sparso» contiene «buchi»: sequenze di byte nulli che
non occupano nessuno blocco fisico sul disco; la chiamata di
sistema «read»
li legge come se fossero veramente dei byte
nulli. Ciò può fare notevolmente risparmiare spazio sul disco ed
aumentare la velocità visto che parecchi file binari contengono
molti byte nulli consecutivi. Di natura, cp usa un⤙euristica
grossolana per riconoscere buchi nei file sorgenti, e rende
sparsi anche i file in uscita.
QUANDO può assumere uno di questi valori:
auto Il comportamento di default: il file di output è sparso
se lo è quello d⤙input.
always (sempre) Rende sempre sparso il file di output. Ciò può
venire utile quando il file d⤙input sta su un filesystem
che non supporta file sparsi mentre il file di output sta
su un filesystem che
li supporta.
never (mai) Non rendere mai sparso il file di output. Se trovi
un uso per questa opzione faccelo sapere.
-s, --symbolic-link
Crea link simbolici piuttosto che copie di non-directory. Tutti
i nomi dei file di origine devono essere assoluti (iniziare con
⤘/⤙) a meno che i file di destinazione non siano nella directory
corrente. Questa opzione produce semplicemente un messaggio di
errore su sistemi che non permettono i link simbolici.
-u, --update
Non copia una non-directory sopra una destinazione preesistente
con la data di modifica uguale o più recente
-v, --verbose
Stampa il nome di ogni file prima di copiarlo.
-x, --one-file-system
Salta le sub-directory che sono su dei filesystem diversi da
quello da cui si è iniziata la copia.
OPZIONI GNU DI BACKUP
Le versioni GNU di programmi come cp, mv, ln, install e patch creano
una copia di backup dei file che stanno per essere sovrascritti, modi�
ficati o distrutti, se ciò viene richiesto. Una simile richiesta è
indicata dall⤙opzione -b. Come i file di backup debbano essere chiamati
è dato dall⤙opzione -V. Nel caso in cui il loro nome sia dato dal nome
dei file originali più un suffisso, il suffisso è indicato dall⤙opzione
-S.
-b, --backup
Crea copie di backup dei file che stanno per essere sovrascritti
o rimossi.
-S SUFFISSO , --suffix= SUFFISSO
Aggiunge SUFFISSO a tutti file di backup. Se questa opzione non
è specificata, viene usato il valore della variabile ambientale
SIMPLE_BACKUP_SUFFIX . Se SIMPLE_BACKUP_SUFFIX non è impostata,
il valore di default è «~».
-V METODO, --version-control=METODO
Specifica come creare il nome dei file di backup. L⤙argomento
METODO può essere «numbered» (o «t»), «existing» (o «nil»)
oppure «never» (o «simple»). Se questa opzione non è specifi�
cata, viene usato il valore della variabile ambientale VERâ¤â¤�
SION_CONTROL . Se VERSION_CONTROL non è impostata, il valore di
default è «existing».
Questa opzione corrisponde alla variabile «version-control» di
emacs. Valori leciti per sono (dove le abbreviazioni univoche
sono accettate):
t, numbered
Crea sempre backup numerati.
nil, existing
Crea backup numerati per i file che già ne hanno, backup
semplici per gli altri.
never, simple
Crea sempre backup semplici.
OPZIONI GNU STANDARD
--help Stampa un messaggio di spiegazione sullo standard output ed esce
(con successo).
--version
Stampa informazioni sulla versione sullo standard output ed esce
(con successo).
-- Termina l⤙elenco delle opzioni.
AMBIENTE
Le variabili LANG, LC_ALL, LC_COLLATE, LC_CTYPE e LC_MESSAGES hanno il
solito significato. Per la versione GNU, le variabili SIM�
PLE_BACKUP_SUFFIX e VERSION_CONTROL controllano la formazione del nome
dei backup, come descritto più sopra.
CONFORME A
POSIX 1003.2.
NOTE
Questa pagina descrive cp come si trova nel pacchetto fileutils-4.0;
altre versioni potrebbero differire leggermente. Spedisci correzioni o
aggiunte a
aeb@cwi.nl [NdT: ovviamente, problemi nella traduzione
devono essere spediti al traduttore, non agli autori]. Segnala bachi
nei programmi a
fileutils-bugs@gnu.ai.mit.edu.
GNU File Utilities Novembre 1998 CP(1)
Segnalibri