logo

Comando cp in Linux/Unix | Copia file Linux

'cp' significa copia. Il comando 'cp' viene utilizzato per copiare un file o una directory.

Introduzione al comando cp

Il comando cp viene utilizzato per copiare directory e file. Il comando contiene tre modalità operative principali, rappresentate dai tipi di argomenti mostrati al programma per copiare un file in altri file, più file in qualsiasi directory o per copiare intere directory in altre directory.

Inoltre, l'utilità accetta diversi flag di opzioni della riga di comando per dettagliare le operazioni implementate. Le due specifiche principali sono GNU cp e POSIX cp. GNU cp contiene varie opzioni extra nella versione POSIX. Inoltre, il comando è disponibile nella shell EFI.

Modalità operative del comando cp

Il comando cp contiene tre modalità operative principali. Queste modalità sono completate dal conteggio e dal tipo di argomenti mostrati al programma sotto invocazione.

  • Il programma può copiare il contenuto del primo file nel secondo file, rendendo il secondo file se essenziale quando il programma contiene due argomenti relativi al nome del percorso dei file.
  • Il programma può copiare tutti i file sorgente nella directory desiderata, rendendo qualsiasi file non già disponibile quando il programma contiene uno o più argomenti relativi al nome del percorso dei file e perseguendo tali argomenti in un percorso verso una directory.
  • Il comando cp può copiare ogni file all'interno della directory di origine nella directory desiderata, rendendo necessarie eventuali directory o file quando gli argomenti del programma sono i nomi di percorso di due directory. Questa modalità operativa necessita di un flag di opzione aggiuntivo per rappresentare la copia ricorsiva della directory. L'origine verrà copiata nella destinazione, mentre verrà creata una nuova directory se la destinazione non esiste se la directory di destinazione è già disponibile.

Opzioni del comando cp

Opzione Descrizione
--archivio, -a È equivalente a -dR --preserve=all.
--solo attributi Non copia i dati del file, solo gli attributi.
-B È come il backup ma non accetta alcun argomento.
--backup[=CONTROL] Effettua un backup di tutti i file di destinazione esistenti.
--copia-contenuto Quando è ricorsivo, copia il contenuto di file speciali.
-D È equivalente a --no-dereference --preserve=links.
--forza, -f Se non è possibile aprire un file di destinazione esistente, eliminalo e riprova (questa opzione viene evitata se viene utilizzato anche il flag -n).
--interattivo, -i Chiede conferma prima di sovrascrivere (sostituisce il precedente flag -n).
-H In SOURCE, segue i collegamenti simbolici della riga di comando.
--link, -l Specifica i file di collegamento reale anziché la copia.
--dereferenza, -L In SOURCE, segue sempre i collegamenti simbolici.
--no-clobber, -n Non sovrascrive alcun file esistente (sostituisce il flag -i).
--no-dereferenza, -P In SOURCE, non segue mai collegamenti simbolici.
-P È equivalente a --preserve=modalità, timestamp, proprietà.
--preserve[=ATTR_LIST] Conserva gli attributi descritti. Se possibile attributi extra: all, xattr, links, context.
--no-preserve=ATTR_LIST Non conserva gli attributi descritti.
--genitori Nella directory, utilizza il nome completo del file sorgente.
--ricorsivo, -r, -R Copia ricorsivamente le directory.
--reflink[=QUANDO] Controlla le copie CoW/clone.
--rimuovi-destinazione Rimuove tutti i file di destinazione esistenti prima di provare ad aprirli (al contrario di --force).
--sparse=QUANDO Controlla la creazione di file sparsi.
--string-trailing-slash Rimuove le barre finali da tutti gli argomenti SOURCE.
--link simbolico, -s Crea collegamenti simbolici anziché copiare.
--suffisso=SUFFISSO, -S Sostituisce il suffisso di backup comune.
--directory-destinazione=DIRECTORY, -t Copia ogni argomento SOURCE in DIRECTORY.
--no-directory-destinazione, -T Considera DEST come un file generale.
--aggiornamento, -u Copia se il file SORGENTE è più recente rispetto al file di destinazione o se il file di destinazione non è specificato.
--verboso, -v Specifica cosa si sta facendo.
--one-filesystem, -x Rimane nel file system.
-CON Imposta il contesto di sicurezza SELinux del file di destinazione sul tipo predefinito.
--context[=CTX] È uguale a -Z, o se viene menzionato CTX, imposta il contesto di sicurezza SMACK o SELinux su CTX.
--aiuto Mostra il menu di aiuto ed esce.
--versione Fornisce i dettagli della versione e le uscite.

I file SOURCE sparsi vengono trovati mediante un'euristica economica e il file DESR correlato viene creato sparse per impostazione predefinita. È il comportamento scelto da --sparse=automatico . Possiamo descrivere --sparso=sempre per creare un file DEST sparso se il file SOURCE include un ordine sufficientemente lungo di zero byte. Possiamo anche candidarci --sparso=mai per limitare la creazione di file sparsi.

Se --reflink[=sempre] viene menzionato, implementare una copia leggera, in cui i blocchi dati siano stati copiati solo se modificati. Se non è possibile o --reflink=auto viene menzionato, la copia fallisce e ritorna alla copia standard. Possiamo anche candidarci --reflink=mai per garantire che venga implementata una copia standard.

Per copiare un file nella stessa directory la sintassi sarà,

 cp 

File Linux cp

Nell'istantanea sopra, abbiamo creato una copia di 'documento' e lo chiamò come 'nuovo' . Se nel caso, (nel nostro caso è 'newdocu') esiste già, quindi sovrascriverà semplicemente il file precedente.

Per copiare un file in una directory diversa

Dobbiamo menzionare il percorso della directory di destinazione.

Nell'istantanea qui sotto, in precedenza non c'è alcun file di 'testo'. Dopo aver dato il comando, 'testo' il file è stato copiato nella directory di destinazione 'Tavolo' .

File Linux cp

Linux cp -r

Opzione 'R' con il comando copy può essere utilizzato per copiare una directory compreso tutto il suo contenuto da una directory di origine alla directory di destinazione.

Sintassi:

istanziazione in Java
 cp -r 

Esempio:

 cp -r library /home/sssit/Documents 

linux cp -r

Nell'esempio sopra, abbiamo copiato directory 'biblioteca' alla directory di destinazione /home/sssit/Documenti . Qui, tutti i contenuti della directory 'libreria', compresi i suoi contenuti, sono stati copiati nella directory di destinazione.

Linux Copia più file o directory

È possibile copiare più file o directory contemporaneamente in una directory di destinazione. In questo caso, la destinazione deve essere una directory. Per copiare più file è possibile utilizzare caratteri jolly (cp *.extension) con lo stesso modello.

Sintassi:

 cp *. 

Esempio:

 cp *.txt /home/sssit/Documents 

Linux copia più file

Nell'esempio sopra, abbiamo copiato file (file1, file2, file3) con la stessa estensione '.TXT' nella directory Documenti.

Linux cp --backup

Se il file che vuoi copiare esiste già nella directory di destinazione, puoi eseguire il backup del file esistente con l'uso di questo comando.

Sintassi:

 cp --backup 

Esempio:

arraylist nell'ordinamento Java
 cp --backup file2.txt /home/sssit/Downloads 

Backup del file cp di Linux

Come puoi vedere sopra, 'file2.txt' esiste già nella directory di destinazione. Pertanto, abbiamo creato un backup di questo file e lo abbiamo copiato nella stessa directory (con lo stesso nome).

Ora la nostra directory di destinazione 'Download' ha due file con lo stesso nome (ovvero 'file2.txt').

Linux cp -i

L'opzione cp '-i' ti consente di confermare una volta prima di sovrascrivere il file.

Sintassi:

 cp -i 

Esempio:

 cp -i file3.txt /home/sssit/Desktop 

Linux cp -i

Come puoi vedere, viene richiesta l'autorizzazione per sovrascrivere il file 'file3.txt' poiché questo file esiste già nella directory di destinazione. Ora puoi premere E per sovrascrivere il file e N per non sovrascrivere il file.

Linux cp -l

Se desideri creare un collegamento reale di un file invece di copiarlo, puoi utilizzare l'opzione 'l'.

Nota: Durante la creazione del collegamento reale del file, il numero di inode dei due file rimarrà lo stesso. Mentre in caso di copia, il numero di inode cambia.

Sintassi:

 cp -l 

Esempio:

 cp -l file1.txt usr/ 

File Linux cp -l

Nota qui che abbiamo creato un collegamento fisico del file 'file1.txt' In 'usr' . Il numero di inode di entrambi i file è lo stesso.

app nascoste

Linux cp-p

L'opzione cp '-p' viene utilizzata per preservare le proprietà e gli attributi di un file. Puoi anche preservare le proprietà selezionate che desideri.

Sintassi:

 cp -p 

Esempio:

 cp -p file2.txt usr/ 

Linux cp-p

Ora puoi abbinare i due file (quello originale e quello copiato) nell'immagine sopra, entrambi hanno le stesse proprietà.

Linux cp -u -v

Il comando cp -u -v viene utilizzato quando vuoi assicurarti che il file di destinazione manchi o non esista.

Sintassi:

 cp -u -v 

Esempio:

 cp -u -v docc file1.txt /home/sssit/Downloads/ 

Linux cp -u -v

Nell'immagine sopra puoi vedere che ci sono due file 'docc' E 'file1.txt' . Ora vogliamo copiare questi due file nella directory 'Download'. Ma non sappiamo se nella directory 'Download' esiste già il file 'file1.txt'.

Dare il comando 'cp -u -v' si prenderà automaticamente cura del file già esistente (file1.txt) e non lo sovrascriverà.

Questo comando è utile per copiare file di grandi dimensioni.