Comando cp

Scopo

Copia i file.

Sintassi

Per copiare un file su un altro file

cp [ -E{force|ignore|warn} ] [ -f ] [ -h ] [  -i ] [ -p ] [ -I ] [ -U ] [ ] File di origine File di destinazione

Per copiare un file in un altro indirizzario

cp [ -E{force|ignore|warn} ] [ -f ] [  -h ] [  -i ] [  -p ] [[  -r -R ] [ -H | -L | -P ]] [ -I ] [ -U ] [ ] File di origine ... Indirizzario di destinazione

Per copiare un indirizzario in un indirizzario

cp [ -E{force|ignore|warn} ] [ -f ] [  -h ] [  -i ] [  -p ] {  -r -R } [ -H | -L | -P ] [ -I ] [ -U ] [  ] Indirizzario di origine ... Indirizzario di destinazione

Descrizione

Il comando cp copia il file di origine specificato dal parametro File di origine nel file di destinazione specificato dal parametro File di destinazione. Se il file di destinazione esiste, cp sostituisce il contenuto, ma modalità proprietario e gruppo associati ad esso non vengono modificati. L'ora dell'ultimo accesso del File di origine e l'ora dell'ultima modifica del File di destinazione vengono impostate sull'ora di esecuzione della copia. Se il File di destinazione non esiste, cp crea un nuovo file denominato File di destinazione con la stessa modalità del file di origine, ma il bit permanente non viene impostato a meno che non tale operazione venga effettuata da un superutente; il proprietario e il gruppo del File di destinazione sono quelle dell'utente. Quando il file di destinazione è un collegamento a un altro file, cp sostituisce il collegamento di destinazione con il contenuto del file di origine; i collegamenti dal file di destinazione rimangono. Inoltre, il comando cp consente di copiare i file di origine specificati dal parametro File di origine (o gli indirizzari specificati dal parametro Indirizzario di origine) nell'indirizzario specificato dal parametro Indirizzario di destinazione.

Nota:
se uno dei parametri di origine è un indirizzario, è necessario specificare uno degli indicatori -r o -R.

Se gli indirizzari vengono creati dal comando cp durante il processo di copia, l'indirizzario appena creato presenterà la stessa modalità dell'indirizzario di origine corrispondente.

E' possibile inoltre copiare speciali file del dispositivo. A tale scopo, l'opzione preferita è l'indicatore -R. Se si specifica -R, i file speciali vengono ricreati nel nuovo nome percorso. Se si specifica l'indicatore -r, il comando cp tenta la copia del file speciale su un file normale.

Indicatori

-E L'opzione -E richiede uno dei seguenti argomenti. Se si omette l'opzione -E, warn è la funzionalità predefinita.
force
Non esegue l'operazione cp su un file, se non è possibile mantenere la dimensione di estensione fissa o la prenotazione spazio del file.
ignore
Ignora gli errori nella conservazione degli attributi di estensione.
warn
Emette un'avvertenza se non è possibile mantenere la prenotazione spazio o la dimensione di estensione fissa del file.
-f Specifica la rimozione del file di destinazione, se non è possibile aprirlo per operazioni di scrittura. La rimozione precede qualsiasi copia eseguita dal comando cp.
-h Forza il comando cp per la copia di collegamenti simbolici. Il valore predefinito è seguire collegamenti simbolici, ossia, copiare file a cui puntano i collegamenti simbolici.
-H Eseguire azioni in base al tipo e al contenuto del file a cui fa riferimento un collegamento simbolico specificato come operando File di origine.
-i Richiede all'utente il nome di un file da sostituire. Ciò si verifica se il parametro Indirizzario di destinazione o File di destinazione contiene un file con lo stesso nome del file specificato nel parametro File di origine o Indirizzario di origine. Se si immette y o l'equivalente della locale y, il comando cp continua. Qualsiasi altra risposta impedisce al comando cp di sovrascrivere il file.
-I Evita la visualizzazione del messaggio di avvertenza durante la conversione ACL.
-L Eseguire azioni in base al tipo e al contenuto del file a cui fa riferimento un collegamento simbolico specificato come operando File di origine o qualsiasi collegamento simbolico individuato durante il percorso di una gerarchia file.
-p Duplica le seguenti caratteristiche di ogni File di origine/ indirizzario di origine nel corrispondente File di destinazione e/o Indirizzario di destinazione:
  • L'ora dell'ultima modifica di dati e l'ora dell'ultimo accesso. Se la duplicazione ha esito negativo per qualsiasi ragione, il comando cp scriverà un messaggio diagnostico sull'errore standard.
  • L'ID utente e l'ID gruppo. Se la duplicazione ha esito negativo per qualsiasi ragione, il comando cp potrebbe scrivere un messaggio diagnostico sull'errore standard.
  • I bit di autorizzazione file e i bit S_ISUID e S_ISGID. Se la duplicazione ha esito negativo per qualsiasi ragione, il comando cp scriverà un messaggio diagnostico sull'errore standard.

Se non è possibile duplicare l'ID utente o gruppo, i bit di autorizzazione file S_ISUID e S_ISGID vengono eliminati.

Per conservare ID gruppo e ID proprietario, modalità di autorizzazione, ora di accesso e di modifica, è necessario che l'utente disponga delle appropriate autorizzazioni di accesso file (l'utente dovrebbe essere un superutente o avere lo stesso ID proprietario del file di destinazione)

Il file di destinazione non verrà eliminato se non è possibile mantenere tali caratteristiche.

Gli ACL (Access control list) associati al File di origine vengono conservati se anche il filesystem di destinazione li supporta. Se il file di origine contiene NFS4 ACL e il filesystem di destinazione non supporta NFS4 ACL, NFS4 ACL viene convertito in AIXC.

Quando la conversione ACL ha esito positivo, viene emesso un messaggio di avvertenza esternamente a stderr.

-P Eseguire azioni in base al collegamento simbolico specificato come operando File di origine o qualsiasi collegamento simbolico individuato durante il percorso di una gerarchia file.
-r Copia le gerarchie file nel file o indirizzario specificato dal parametro File di origine o Indirizzario di origine (copia ricorsiva). L'indicatore -r elabora i file speciali come se fossero file normali.
-R Copia le gerarchie di file negli indirizzari e nei file normali dall'indirizzario specificato dal parametro File di origine o Indirizzario di origine nell'indirizzario specificato dal parametro Indirizzario di destinazione. I tipi di file speciali, ad esempio i file FIFO (first-in, first-out) e i file di blocco e del dispositivo di caratteri, vengono ricreati anziché copiati. I collegamenti simbolici vengono seguiti a meno che non si specifichi l'indicatore -h. (L'indicatore -R è preferito rispetto all'indicatore -r).

Se non è stata specificata alcuna delle opzioni -H, -L o -P, non viene specificato quale di tali opzioni verrà utilizzata come predefinita. Considerare quanto segue:

  • Se è stata specificata l'opzione -H, il comando cp eseguirà un'azione in base al tipo e al contenuto del file a cui fa riferimento un collegamento simbolico specificato come operando File di origine.
  • Se è stata specificata l'opzione -L, il comando cp eseguirà un'azione in base al tipo e al contenuto del file a cui fa riferimento un collegamento simbolico specificato come operando File di origine o qualsiasi collegamento individuato durante il percorso di gerarchia file.
  • Se è stata specificata l'opzione -P, il comando cp copierà qualsiasi collegamento simbolico specificato come operando File di origine e qualsiasi collegamento individuato durante il percorso di gerarchia file e non seguirà alcun collegamento simbolico.
-U Copia gli EA (Extended Attribute), e gli ACL (Access Control List) nel File di origine nel File di destinazione. Se l'EA non è supportato sul filesystem di destinazione, viene ignorato. Se il tipo di ACL di origine non è supportato sul filesystem di destinazione, viene convertito nel tipo ACL compatibile supportato dal filesystem di destinazione.
-- Indica che i parametri dopo l'indicatore -- (trattino, trattino) devono essere interpretati come nomi file. Tale indicatore nullo consente la specifica di nomi file che iniziano con un - (segno meno).

Stato di uscita

Questo comando restituisce i seguenti valori di uscita:

0 Tutti i file sono stati copiati correttamente.
>0 Si è verificato un errore.

Esempi

  1. Per copiare un file nell'indirizzario corrente, immettere:

    cp prog.c prog.bak

    In questo modo, prog.c viene copiato in prog.bak. Se il file prog.bak non esiste già, il comando cp lo crea. Se non esiste, il comando cp lo sostituisce con una copia del file prog.c.

  2. Per copiare un file nell'indirizzario corrente in un altro indirizzario, immettere:

    cp jones /home/nick/clients

    In questo modo, il file jones viene copiato in prog.bak.

  3. Per copiare un file in un nuovo file e conservare data e ora di modifica e ACL (access control list) associati con il file di origine, immettere:
    cp  -p smith smith.jr
    In questo modo, il file smith viene copiato nel file smith.jr. Invece di creare il file con la registrazione data/ ora corrente, il sistema assegna al file smith.jr la stessa data e ora del file smith. Il file smith.jr eredita inoltre la protezione di controllo accesso del file smith.
  4. Per copiare tutti i file in un indirizzario in un nuovo indirizzario, immettere:

    cp /home/janet/clients/* /home/nick/customers

    In questo modo vengono copiati solo i file dell'indirizzario clients nell'indirizzario customers.

  5. Per copiare un indirizzario, incluso tutti i relativi file e sottoindirizzari, in un altro indirizzario, immettere:
    cp  -R /home/nick/clients /home/nick/customers
    Nota:
    non è possibile copiare un indirizzario all'interno di se stesso.
    In questo modo, viene copiato l'indirizzario clients, con tutti i relativi file, sottoindirizzari e file in tali sottoindirizzari, nell'indirizzario customers/clients.
  6. Per copiare una specifica specie di file in un altro indirizzario, immettere:

    cp jones lewis smith /home/nick/clients

    In questo modo vengono copiati i file jones, lewis, smith dell'indirizzario di lavoro corrente nell'indirizzario /home/nick/clients.

  7. Per utilizzare i caratteri di corrispondenza modello per copiare i file, immettere:

    cp programs/*.c .

    In questo modo i file vengono copiati nell'indirizzario corrente programs che terminano con .c nell'indirizzario corrente, indicati dal singolo . (punto). E' necessario inserire uno spazio tra c e il punto finale.

  8. Per copiare un file in un nuovo file e conservare ACL ed EA associati con il file di origine, immettere:
    cp -U smith smith.jr
    

File

/usr/bin/cp
Contiene il comando cp.

Informazioni correlate

Il comando mv.


Invia feedback |  Valuta questa pagina