Questo è il comando cpposix che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
cp — copia file
SINOSSI
cp [-Pfip] file sorgente file_destinazione
cp [-Pfip] file sorgente... bersaglio
cp -R [−H|−L|−P] [-fip] file sorgente... bersaglio
DESCRIZIONE
La prima forma di sinossi è denotata da due operandi, nessuno dei quali è file esistente di
tipo directory. Il cp l'utilità deve copiare il contenuto di file sorgente (o se file sorgente
è un file di tipo collegamento simbolico, il contenuto del file referenziato da file sorgente) A
il percorso di destinazione denominato da file_destinazione.
La seconda forma di sinossi è denotata da due o più operandi dove il -R l'opzione non è
specificato e il primo modulo di sinossi non è applicabile. Sarà un errore se c'è
file sorgente è un file di tipo directory, se bersaglio non esiste, o se bersaglio non
nominare una directory. Il cp l'utilità deve copiare il contenuto di ciascuno file sorgente (o se
file sorgente è un file di tipo collegamento simbolico, il contenuto del file referenziato da
file sorgente) al percorso di destinazione denominato dalla concatenazione di bersaglio, una sola
carattere se bersaglio non è finita in a , e l'ultimo componente di
file sorgente.
La terza forma di sinossi è denotata da due o più operandi dove il -R opzione è
specificato. Il cp l'utilità deve copiare ogni file nella gerarchia di file radicata in ciascuno
file sorgente a un percorso di destinazione denominato come segue:
* Se bersaglio esiste e nomina una directory esistente, il nome del corrispondente
il percorso di destinazione per ogni file nella gerarchia dei file deve essere la concatenazione di
bersaglio, un unico carattere se bersaglio non è finita in a , e il
percorso del file relativo alla directory contenente file sorgente.
* Se bersaglio non esiste e vengono specificati due operandi, il nome del corrispondente
percorso di destinazione per file sorgente deve essere bersaglio; il nome del corrispondente
il percorso di destinazione per tutti gli altri file nella gerarchia dei file deve essere la concatenazione
of bersaglio, un carattere e il percorso del file relativo a file sorgente.
Sarà un errore se bersaglio non esiste e sono specificati più di due operandi, oppure
if bersaglio esiste e non nomina una directory.
Nella descrizione che segue, il termine file_destinazione si riferisce al file denominato da
percorso di destinazione. Il termine file sorgente si riferisce al file che viene copiato, se
specificato come operando o file in una gerarchia di file radicata in a file sorgente operando. Se
file sorgente è un file di tipo collegamento simbolico:
* Se la -R l'opzione non è stata specificata, cp intraprende azioni in base al tipo e
contenuto del file referenziato dal collegamento simbolico e non dal collegamento simbolico
stesso, a meno che il -P è stata specificata l'opzione.
* Se la -R l'opzione è stata specificata:
-- Se nessuna delle opzioni -H, -L, né -P sono stati specificati, non è specificato quale di
-H, -L, o -P verrà utilizzato come predefinito.
-- Se la -H l'opzione è stata specificata, cp intraprende azioni in base al tipo e
contenuto del file a cui fa riferimento qualsiasi collegamento simbolico specificato come a file sorgente
operando.
-- Se la -L l'opzione è stata specificata, cp intraprende azioni in base al tipo e
contenuto del file a cui fa riferimento qualsiasi collegamento simbolico specificato come a file sorgente
operando o qualsiasi collegamento simbolico incontrato durante l'attraversamento di una gerarchia di file.
-- Se la -P l'opzione è stata specificata, cp deve copiare qualsiasi collegamento simbolico specificato come a
file sorgente operando e qualsiasi collegamento simbolico incontrato durante l'attraversamento di un file
gerarchia e non deve seguire alcun collegamento simbolico.
Per ciascun file sorgente, devono essere prese le seguenti misure:
1. Se file sorgente fa riferimento allo stesso file di file_destinazione, cp può scrivere una diagnostica
messaggio di errore standard; non farà più niente con file sorgente e andrà avanti
a tutti i file rimanenti.
2. Se file sorgente è di tipo directory, devono essere eseguite le seguenti operazioni:
un. Se la -R l'opzione non è stata specificata, cp scriverà un messaggio diagnostico a
errore standard, non fare altro con file sorgente, e vai a qualsiasi rimanente
File.
B. Se file sorgente non è stato specificato come operando e file sorgente è punto o punto-punto,
cp non farà più niente con file sorgente e vai a tutti i file rimanenti.
C. Se file_destinazione esiste ed è un tipo di file non specificato dalle interfacce di sistema
volume di POSIX.1‐2008, il comportamento è definito dall'implementazione.
D. Se file_destinazione esiste e non è di tipo directory, cp deve scrivere una diagnostica
messaggio di errore standard, non fare altro con file sorgente o qualsiasi file di seguito
file sorgente nella gerarchia dei file e passare a tutti i file rimanenti.
e. Se la directory file_destinazione non esiste, deve essere creato con file
bit di autorizzazione impostati sullo stesso valore di quelli di file sorgente, modificato da
maschera di creazione file dell'utente se il -p opzione non è stata specificata, quindi
OR bit per bit incluso con S_IRWXU. Se file_destinazione non si può creare, cp deve
scrivi un messaggio diagnostico su errore standard, non fare altro con file sorgente,
e vai a tutti i file rimanenti. Non è specificato se cp tenta di copiare i file
nella gerarchia dei file radicata in file sorgente.
F. I file nella directory file sorgente deve essere copiato nella directory file_destinazione,
seguendo i quattro passaggi (da 1 a 4) elencati qui con i file come file sorgentes.
G. Se file_destinazione è stato creato, i suoi bit di autorizzazione del file devono essere modificati (se necessario)
essere uguali a quelli di file sorgente, modificato dalla maschera di creazione file del
utente se il -p l'opzione non è stata specificata.
h. Il cp l'utilità non farà più nulla con file sorgente e vai a qualsiasi rimanente
File.
3. Se file sorgente è di tipo file normale, devono essere eseguite le seguenti operazioni:
un. Il comportamento non è specificato se file_destinazione esiste ed è stato scritto da un precedente
fare un passo. Altrimenti, se file_destinazione esiste, devono essere prese le seguenti misure:
io. Se la -i l'opzione è attiva, il cp l'utilità deve scrivere un prompt al
errore standard e leggere una riga dallo standard input. Se la risposta è
non affermativo, cp non farà più niente con file sorgente e vai a qualsiasi
file rimanenti.
ii. Un descrittore di file per file_destinazione deve essere ottenuto eseguendo azioni
equivalente al aprire() funzione definita nel volume Interfacce di sistema di
POSIX.1‐2008 chiamato using file_destinazione la sentiero argomento, e il bit a bit-
comprensivo di OR di O_WRONLY e O_TRUNC come oflag discussione.
ii. Se il tentativo di ottenere un descrittore di file fallisce e il -f l'opzione è in
effetto, cp tenterà di rimuovere il file eseguendo azioni equivalenti
ai scollegare() funzione definita nel volume Interfacce di sistema di
POSIX.1‐2008 chiamato using file_destinazione la sentiero discussione. Se questo tentativo
riesce, cp deve continuare con il passaggio 3b.
B. Se file_destinazione non esiste, un descrittore di file deve essere ottenuto eseguendo
azioni equivalenti a aprire() funzione definita nel volume Interfacce di sistema
di POSIX.1‐2008 chiamato using file_destinazione la sentiero argomento, e il bit a bit-
comprensivo di OR di O_WRONLY e O_CREAT come oflag discussione. Il permesso del file
pezzi di file sorgente deve essere il modo discussione.
C. Se il tentativo di ottenere un descrittore di file fallisce, cp deve scrivere una diagnostica
messaggio di errore standard, non fare altro con file sorgente, e vai a qualsiasi
file rimanenti.
D. Il contenuto di file sorgente deve essere scritto nel descrittore di file. Qualsiasi scrittura
gli errori devono causare cp per scrivere un messaggio diagnostico in errore standard e continuare
al passaggio 3e.
e. Il descrittore di file deve essere chiuso.
F. Il cp l'utilità non farà più nulla con file sorgente. Se si è verificato un errore di scrittura
nel passaggio 3d, non è specificato se cp continua con tutti i file rimanenti. se no
errore di scrittura verificato nel passaggio 3d, cp passerà a tutti i file rimanenti.
4. In caso contrario, il -R è stata specificata l'opzione e devono essere prese le seguenti misure:
un. Il file_destinazione deve essere creato con lo stesso tipo di file di file sorgente.
B. Se file sorgente è un file di tipo FIFO, i bit di autorizzazione del file devono essere gli stessi
come quelli di file sorgente, modificato dalla maschera di creazione file dell'utente se il -p
l'opzione non è stata specificata. In caso contrario, i permessi, l'ID proprietario e l'ID gruppo di
file_destinazione sono definiti dall'implementazione.
Se questa creazione fallisce per qualsiasi motivo, cp scriverà un messaggio diagnostico a
errore standard, non fare altro con file sorgente, e vai a qualsiasi rimanente
File.
C. Se file sorgente è un file di tipo collegamento simbolico e le opzioni richiedono il
collegamento simbolico stesso su cui agire, il percorso contenuto in file_destinazione deve
essere lo stesso del percorso contenuto in file sorgente.
Se questo fallisce per qualsiasi motivo, cp deve scrivere un messaggio diagnostico su standard
errore, non fare più niente con file sorgentee vai a tutti i file rimanenti.
Se l'implementazione prevede meccanismi di controllo degli accessi aggiuntivi o alternativi (vedere il
Volume delle definizioni di base di POSIX.1‐2008, Sezione 4.4, Compila il accesso a Permessi), loro
l'effetto sulle copie dei file è definito dall'implementazione.
VERSIONI
Il cp l'utilità deve essere conforme al volume delle definizioni di base di POSIX.1‐2008, Sezione 12.2,
Utilità Sintassi Linee Guida.
Sono supportate le seguenti opzioni:
-f Se non è possibile ottenere un descrittore di file per un file di destinazione, come descritto in
passaggio 3.a.ii., tentare di scollegare il file di destinazione e procedere.
-H Intraprendere azioni in base al tipo e al contenuto del file a cui fa riferimento qualsiasi
collegamento simbolico specificato come a file sorgente operando.
-i Scrivi un prompt per l'errore standard prima di copiare in qualsiasi directory non esistente
file di destinazione. Se la risposta dello standard input è affermativa, il
la copia deve essere tentata; in caso contrario, non lo sarà.
-L Intraprendere azioni in base al tipo e al contenuto del file a cui fa riferimento qualsiasi
collegamento simbolico specificato come a file sorgente operando o qualsiasi collegamento simbolico
incontrato durante l'attraversamento di una gerarchia di file.
-P Intraprendere azioni su qualsiasi collegamento simbolico specificato come a file sorgente operando o qualsiasi
collegamento simbolico incontrato durante l'attraversamento di una gerarchia di file.
-p Duplica le seguenti caratteristiche di ciascun file sorgente nel corrispondente
file di destinazione:
1. L'ora dell'ultima modifica dei dati e l'ora dell'ultimo accesso. Se questo
la duplicazione fallisce per qualsiasi motivo, cp scriverà un messaggio diagnostico a
errore standard.
2. L'ID utente e l'ID gruppo. Se questa duplicazione fallisce per qualsiasi motivo, lo è
non specificato se cp scrive un messaggio diagnostico nell'errore standard.
3. I bit di autorizzazione del file e i bit S_ISUID e S_ISGID. Altro,
definiti dall'implementazione, anche i bit possono essere duplicati. Se questa duplicazione
fallisce per qualsiasi motivo, cp deve scrivere un messaggio diagnostico su errore standard.
Se l'ID utente o l'ID gruppo non può essere duplicato, i bit di autorizzazione del file
S_ISUID e S_ISGID devono essere cancellati. Se questi bit sono presenti nella sorgente
file ma non sono duplicati nel file di destinazione, non è specificato se
cp scrive un messaggio diagnostico nell'errore standard.
L'ordine in cui vengono duplicate le caratteristiche precedenti non è specificato.
Il file_destinazione non devono essere cancellati se tali caratteristiche non possono essere preservate.
-R Copia gerarchie di file.
Specificare più di una delle opzioni che si escludono a vicenda -H, -Le -P Non sarà
considerato un errore. L'ultima opzione specificata determina il comportamento del
utilità.
OPERANDI
Devono essere supportati i seguenti operandi:
file sorgente
Un percorso di un file da copiare. Se un file sorgente l'operando è '-', deve
fare riferimento a un file denominato -; le implementazioni non devono trattarlo come un significato standard
ingresso.
file_destinazione
Un percorso di un file esistente o inesistente, utilizzato per l'output quando un singolo
il file viene copiato. Se un file_destinazione l'operando è '-', deve fare riferimento a un file denominato
-; le implementazioni non devono trattarlo come un output standard.
bersaglio Un percorso di una directory per contenere i file copiati.
STDIN
L'input standard deve essere utilizzato per leggere una riga di input in risposta a ciascun prompt
specificato nella sezione STDERR. In caso contrario, lo standard input non deve essere utilizzato.
INGRESSO FILE
I file di input specificati come operandi possono essere di qualsiasi tipo di file.
AMBIENTE VARIABILI
Le seguenti variabili d'ambiente influiranno sull'esecuzione di cp:
LUNGO Fornire un valore predefinito per le variabili di internazionalizzazione non impostate o
nullo. (Vedi il volume Definizioni di base di POSIX.1-2008, Sezione 8.2,
Internazionalizzazione Variabili per il primato dell'internazionalizzazione
variabili utilizzate per determinare i valori delle categorie locali.)
LC_TUTTI Se impostato su un valore di stringa non vuoto, sovrascrive i valori di tutti gli altri
variabili di internazionalizzazione.
LC_COLLATE
Determinare la localizzazione per il comportamento di intervalli, classi di equivalenza e multi-
elementi di confronto dei caratteri utilizzati nell'espressione regolare estesa definita per
, il siespr parola chiave locale nel LC_MESSAGGI categoria.
LC_CTYPE Determinare la localizzazione per l'interpretazione di sequenze di byte di dati di testo
come caratteri (ad esempio, caratteri a byte singolo anziché caratteri multibyte in
argomenti e file di input) e il comportamento delle classi di caratteri utilizzate nel
espressione regolare estesa definita per il siespr parola chiave locale nel
LC_MESSAGGI categoria.
LC_MESSAGGI
Determinare il locale utilizzato per elaborare le risposte affermative e il locale utilizzato
influenzare il formato e il contenuto dei messaggi diagnostici e dei prompt scritti su
errore standard.
NLSPATH Determinare la posizione dei cataloghi dei messaggi per l'elaborazione di LC_MESSAGGI.
ASINCRONO EVENTS
Predefinito.
STDOUT
Non usato.
Stderr
Un prompt deve essere scritto nell'errore standard nelle condizioni specificate nel
sezione DESCRIZIONE. Il prompt deve contenere il percorso di destinazione, ma il suo formato è
altrimenti non specificato. In caso contrario, l'errore standard deve essere utilizzato solo per la diagnostica
messaggi.
USCITA FILE
I file di output possono essere di qualsiasi tipo.
EXTENDED DESCRIZIONE
Nessuno.
EXIT STATUS
Devono essere restituiti i seguenti valori di uscita:
0 Tutti i file sono stati copiati correttamente.
>0 Si è verificato un errore.
CONSEGUENZE OF ERRORI
If cp viene interrotto prematuramente da un segnale o da un errore, i file o le gerarchie di file possono essere
solo parzialmente copiati e file e directory potrebbero avere permessi o accessi errati
e tempi di modifica.
Il i seguenti sezioni sono Informativo.
APPLICAZIONI USO
I bit set-user-ID e set-group-ID vengono esplicitamente cancellati quando vengono creati i file. Questo
è impedire agli utenti di creare programmi che sono set-user-ID o set-group-ID per loro
durante la copia di file o per rendere i file set-user-ID o set-group-ID accessibili a nuovi gruppi
di utenti. Ad esempio, se un file è set-user-ID e la copia ha un ID di gruppo diverso
rispetto all'origine, un nuovo gruppo di utenti ha eseguito il permesso per un programma set-user-ID che
fatto in precedenza. In particolare, questo è un problema per i superutenti che copiano gli alberi degli utenti.
ESEMPI
Nessuno.
FONDAMENTO LOGICO
Il -i esiste un'opzione sui sistemi BSD, che offre alle applicazioni e agli utenti un modo per evitare
rimuovere accidentalmente i file durante la copia. Sebbene la versione 4.3 BSD non chieda se
lo standard input non è un terminale, gli sviluppatori dello standard hanno deciso che l'uso di -i è un
richiesta di interazione, quindi quando esiste il percorso di destinazione, l'utilità prende
istruzioni da qualunque cosa risponda sullo standard input.
Il formato esatto dei prompt interattivi non è specificato. Solo la natura generale del
i contenuti dei prompt sono specificati perché le implementazioni potrebbero desiderare più descrittivi
prompt rispetto a quelli utilizzati nelle implementazioni storiche. Pertanto, un'applicazione che utilizza il
-i l'opzione si affida al sistema per fornire il dialogo più adatto direttamente con l'utente,
in base al comportamento specificato.
Il -p l'opzione è una pratica storica sui sistemi BSD, duplicando l'ora degli ultimi dati
modifica e ora dell'ultimo accesso. Questo volume di POSIX.1‐2008 lo estende per preservare
gli ID utente e di gruppo, nonché i permessi dei file. Questo requisito è ovvio
problemi in quanto le directory vengono quasi sicuramente modificate dopo essere state copiate. Questo
volume di POSIX.1‐2008 richiede che i tempi di modifica siano preservati. La dichiarazione
che l'ordine in cui le caratteristiche sono duplicate non è specificato è quello di consentire
implementazioni per fornire la massima sicurezza per l'utente. implementazioni
dovrebbe tenere conto degli ovvi problemi di sicurezza coinvolti nell'impostazione del proprietario, del gruppo,
e modalità nell'ordine sbagliato o creando file con un proprietario, un gruppo o una modalità diversa da
il valore finale.
Non è specificato se cp scrive messaggi di diagnostica quando gli ID utente e gruppo non possono
essere impostato a causa della pratica diffusa degli utenti che utilizzano -p duplicare una parte di
caratteristiche del file, indifferenti alla duplicazione di altri. Implementazioni storiche
scrivere solo messaggi diagnostici su errori diversi da [EPERMA].
Le versioni precedenti di questo standard includevano il supporto per il -r opzione per copiare il file
gerarchie. Il -r L'opzione è una pratica storica sui sistemi BSD e derivati da BSD. Questo
opzione non è più specificata da POSIX.1‐2008 ma potrebbe essere presente in alcune implementazioni.
Il -R opzione è stata aggiunta come sinonimo stretto di -r opzione, selezionata per coerenza con
tutte le altre opzioni in questo volume di POSIX.1‐2008 che eseguono la discesa ricorsiva delle directory.
La differenza tra -R e il rimosso -r l'opzione è nel trattamento di cp di file
tipi diversi da regular e directory. È stato definito dall'implementazione come il - opzione
file speciali trattati per consentire sia implementazioni storiche che quelle che hanno scelto di
supporto -r con le stesse abilità di -R definito da questo volume di POSIX.1‐2008. Il
i -r flag, per ragioni storiche, non ha gestito file speciali in modo diverso da
file normali, ma leggi sempre il file e copia il suo contenuto. Questo aveva problemi evidenti
in presenza di tipi di file speciali; ad esempio, dispositivi a caratteri, FIFO e socket.
Quando si verifica un errore durante la copia di una gerarchia di file, cp è necessario per tentare di
copiare i file che si trovano allo stesso livello nella gerarchia o al di sopra del file in cui si è verificato l'errore
si è verificato. Non è specificato se cp tenterà di copiare i file sotto il file in cui il
si è verificato un errore (che non può comunque avere successo).
Permessi, proprietari e gruppi di tipi di file speciali creati sono stati deliberatamente lasciati
come definito dall'implementazione. Questo per consentire ai sistemi di soddisfare requisiti speciali (per
esempio, consentendo agli utenti di creare dispositivi speciali a carattere, ma richiedendo loro di essere
di proprietà di un determinato gruppo). In generale, è fortemente suggerito che i permessi,
proprietario e gruppo siano gli stessi che se l'utente avesse eseguito lo storico mknod, ln, O altra
utilità per creare il file. È anche probabile che siano necessari privilegi aggiuntivi per
creare blocchi, caratteri o altri tipi di file speciali definiti dall'implementazione.
Inoltre, la -p l'opzione richiede esplicitamente che tutti set-user-ID e set-group-ID
le autorizzazioni vengono annullate se non è possibile impostare uno degli ID del proprietario o del gruppo. Questo è per mantenere
agli utenti di concedere involontariamente privilegi speciali durante la copia dei programmi.
Quando si creano file normali, versioni storiche di cp usa la modalità del file sorgente come
modificato dalla maschera di creazione della modalità file. Altre scelte sarebbero state utilizzare la modalità di
il file sorgente non modificato dalla maschera di creazione o per utilizzare la stessa modalità che sarebbe data
in un nuovo file creato dall'utente (più i bit di esecuzione del file sorgente) e poi
modificarlo tramite la maschera di creazione della modalità file. In assenza di un motivo valido per cambiare
pratica storica, è stato in gran parte conservato.
Quando si creano directory, versioni storiche di cp utilizzare la modalità della directory di origine,
più leggere, scrivere e cercare bit per il proprietario, come modificato dalla creazione della modalità file
maschera. Questo è fatto in modo che cp può copiare alberi in cui l'utente ha il permesso di lettura, ma il
proprietario no. Un effetto collaterale è che se la maschera di creazione del file nega il proprietario
autorizzazioni, cp non riesce. Inoltre, una volta eseguita la copia, le versioni storiche di cp impostare il
le autorizzazioni sulla directory creata siano le stesse della directory di origine, non modificate da
la maschera di creazione del file.
Questo comportamento è stato modificato in modo che cp è sempre in grado di creare i contenuti del
directory, indipendentemente dalla maschera di creazione del file. Al termine della copia, i permessi
sono impostati per essere gli stessi della directory di origine, come modificati dalla maschera di creazione del file.
Quest'ultimo cambiamento rispetto al comportamento storico serve a impedire agli utenti di creare accidentalmente
directory con permessi oltre a quelli che normalmente imposterebbero e per coerenza con
il comportamento di cp nella creazione dei file.
Non è un requisito che cp rilevare i tentativi di copiare un file su se stesso; tuttavia,
implementazioni sono fortemente incoraggiate a farlo. Le implementazioni storiche hanno rilevato
il tentativo nella maggior parte dei casi.
Ci sono due metodi per copiare i sottoalberi in questo volume di POSIX.1-2008. L'altro metodo
è descritto come parte del pax utilità (vedi pax). Entrambi i metodi sono pratica storica.
Il cp utility fornisce un'interfaccia più semplice e intuitiva, mentre pax offre una migliore
granularità del controllo. Ciascuno fornisce funzionalità aggiuntive all'altro; in
particolare, pax mantiene la struttura hard-link della gerarchia, mentre cp non. Esso
è intenzione degli sviluppatori standard che i risultati siano simili (usando l'appropriato
combinazioni di opzioni in entrambe le utilità). Non è necessario che i risultati siano identici;
sembrava non ci fosse guadagno sufficiente per le applicazioni per bilanciare la difficoltà di
implementazioni che devono garantire che i risultati siano esattamente identici.
La formulazione permettendo cp per copiare una directory in tipi di file definiti dall'implementazione not
specificato dal volume System Interfaces di POSIX.1‐2008 è fornito in modo che
le implementazioni che supportano i collegamenti simbolici non sono necessarie per vietare la copia delle directory
ai collegamenti simbolici. Altre estensioni al volume System Interfaces del file POSIX.1‐2008
i tipi potrebbero aver bisogno di usare anche questa scappatoia.
FUTURE INDICAZIONI
Nessuno.
Usa cpposix online usando i servizi onworks.net