GNU/Linux >> Linux Esercitazione >  >> Linux

16 Utili esempi di comandi "cp" per principianti di Linux

Essendo un utente Linux, copiare file e directory è una delle operazioni quotidiane più comuni. Il comando task.cp viene utilizzato per copiare i file e le directory da un luogo locale all'altro utilizzando la riga di comando. Il comando cp è disponibile in quasi tutti i sistemi operativi Unix e Linux simili

In questo articolo dimostreremo 16 utili esempi di comandi cp specialmente per i principianti di Linux. Di seguito è riportata la sintassi di base del comando cp,

Copia un file in un altro file

# cp {opzioni} file_sorgente file_destinazione

Copia i file in un'altra directory o cartella

# cp {opzioni} file_sorgente   directory_destinazione 

Copia directory in directory

# cp {opzioni} directory_sorgente directory_destinazione

Passiamo agli esempi pratici del comando cp,

Esempio:1) Copia il file nella directory di destinazione

Supponiamo di voler copiare il file /etc/passwd nella directory /mnt/backup per qualche scopo di backup, quindi esegui sotto il comando cp,

[email protected]:~# cp /etc/passwd /mnt/backup/
[email protected]:~#

Usa il comando seguente per verificare se è stato copiato o meno.

[email protected]:~# ls -l /mnt/backup/
total 4
-rw-r--r-- 1 root root 2410 Feb  3 17:10 passwd
[email protected]:~#

Esempio:2 Copia di più file contemporaneamente

Supponiamo di voler copiare multipli (/etc/passwd, /etc/group &/etc/shadow) contemporaneamente nella directory di destinazione (/mnt/backup)

[email protected]:~# cp /etc/passwd /etc/group /etc/shadow /mnt/backup/
[email protected]:~#

Esempio:3) Copiare i file in modo interattivo (-i)

Se desideri copiare i file da un posto all'altro in modo interattivo, usa l'opzione "-i" nel comando cp, l'opzione interattiva funziona solo se la directory di destinazione ha già lo stesso file, l'esempio è mostrato di seguito,

[email protected]:~# cp -i /etc/passwd /mnt/backup/
cp: overwrite '/mnt/backup/passwd'? y
[email protected]:~#

Nel comando sopra è necessario digitare manualmente 'y' per consentire l'operazione di copia

Esempio:4) Output dettagliato durante il comando di copia (-v)

Se vuoi l'output dettagliato del comando cp, usa l'opzione "-v", l'esempio è mostrato sotto

[email protected]:~# cp -v /etc/fstab  /mnt/backup/
'/etc/fstab' -> '/mnt/backup/fstab'
[email protected]:~#

Nel caso in cui desideri utilizzare sia la modalità interattiva che la modalità dettagliata, utilizza le opzioni "-iv"

[email protected]echi:~# cp -iv /etc/fstab  /mnt/backup/
cp: overwrite '/mnt/backup/fstab'? y
'/etc/fstab' -> '/mnt/backup/fstab'
[email protected]:~#

Esempio:5) Copia di una directory o cartella (-r o -R)

Per copiare una directory da un posto all'altro, usa -r o -R opzione nel comando cp. Supponiamo di voler copiare la home directory dell'utente linuxtechi in "/mn/backup",

[email protected]:~# cp -r /home/linuxtechi /mnt/backup/
[email protected]:~#

Nel comando precedente, l'opzione -r copierà i file e la directory in modo ricorsivo.

Ora verifica il contenuto della directory linuxtechi nella posizione di destinazione,

[email protected]:~# ls -l /mnt/backup/linuxtechi/
total 24
drwxr-xr-x 2 root root 4096 Feb  3 17:41 data
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_1.txt
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_2.txt
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_3.txt
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_4.txt
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_5txt
-rw-r--r-- 1 root root    0 Feb  3 17:41 file_5.txt
[email protected]:~#

Esempio:6) Archivia file e directory durante la copia (-a)

Durante la copia di una directory usando il comando cp generalmente utilizziamo l'opzione -r o -R, ma al posto dell'opzione -r possiamo usare '-a' che archivierà i file e la directory durante la copia, l'esempio è mostrato di seguito,

[email protected]:~# cp -a /home/linuxtechi /mnt/backup/
[email protected]:~# ls -l /mnt/backup/linuxtechi/
total 24
drwxr-xr-x 2 root root 4096 Feb  3 17:41 data
-rw-r--r-- 1 root root    7 Feb  3 17:39 file_1.txt
-rw-r--r-- 1 root root    7 Feb  3 17:39 file_2.txt
-rw-r--r-- 1 root root    7 Feb  3 17:39 file_3.txt
-rw-r--r-- 1 root root    7 Feb  3 17:39 file_4.txt
-rw-r--r-- 1 root root    7 Feb  3 17:40 file_5txt
-rw-r--r-- 1 root root    0 Feb  3 17:39 file_5.txt
[email protected]:~#

Esempio:7) Copia solo quando il file di origine è più recente del file di destinazione (-u)

Ci possono essere alcuni scenari in cui si desidera copiare i file solo se i file di origine sono più recenti di quelli di destinazione. Questo può essere ottenuto facilmente utilizzando "-u ” opzione nel comando cp.

Nell'esempio:6 abbiamo copiato la directory home di linuxtechi nella cartella /mnt/backup, nella cartella home di linuxtechi abbiamo 5 file txt, modifichiamone un paio e poi copiamo tutti i file txt usando "cp -u".

[email protected]:~# cd /home/linuxtechi/
[email protected]:/home/linuxtechi# echo "LinuxRocks" >> file_1.txt
[email protected]:/home/linuxtechi# echo "LinuxRocks" >> file_4.txt
[email protected]:/home/linuxtechi# cp -v -u  file_*.txt /mnt/backup/linuxtechi/
'file_1.txt' -> '/mnt/backup/linuxtechi/file_1.txt'
'file_4.txt' -> '/mnt/backup/linuxtechi/file_4.txt'
[email protected]:/home/linuxtechi#

Esempio:8) Non sovrascrivere il file esistente durante la copia (-n)

Ci sono alcuni scenari in cui non vuoi sovrascrivere i file di destinazione esistenti durante la copia. Questo può essere ottenuto usando l'opzione '-n' nel comando 'cp'

[email protected]:~# cp -i /etc/passwd /mnt/backup/
cp: overwrite '/mnt/backup/passwd'?

Come puoi vedere nel comando sopra, ci sta chiedendo di sovrascrivere il file esistente, se usi -n non richiederà la sovrascrittura e inoltre non sovrascriverà il file esistente.

[email protected]:~# cp -n /etc/passwd /mnt/backup/
[email protected]:~#

Esempio:9) Creazione di collegamenti simbolici utilizzando il comando cp (-s)

Supponiamo di voler creare un collegamento simbolico di un file invece di copiarlo utilizzando il comando cp, per tali scenari utilizzare l'opzione '-s' nel comando cp, l'esempio è mostrato di seguito

[email protected]:~# cp -s /home/linuxtechi/file_1.txt /mnt/backup/
[email protected]:~# cd /mnt/backup/
[email protected]:/mnt/backup# ls -l file_1.txt
lrwxrwxrwx 1 root root 27 Feb  5 18:37 file_1.txt -> /home/linuxtechi/file_1.txt
[email protected]:/mnt/backup#

Esempio:10) Creazione di un collegamento fisico utilizzando il comando cp (-l)

Se vuoi creare un collegamento reale di un file invece di copiarlo usando il comando cp, usa l'opzione '-l'. l'esempio è mostrato di seguito,

[email protected]:~# cp -l /home/linuxtechi/devops.txt /mnt/backup/
[email protected]:~#

Come sappiamo in hard link, il file sorgente e collegato avranno gli stessi numeri di inode, verifichiamolo usando i seguenti comandi,

[email protected]:~# ls -li /mnt/backup/devops.txt
918196 -rw-r--r-- 2 root root 37 Feb  5 20:02 /mnt/backup/devops.txt
[email protected]:~# ls -li /home/linuxtechi/devops.txt
918196 -rw-r--r-- 2 root root 37 Feb  5 20:02 /home/linuxtechi/devops.txt
[email protected]:

Esempio:11) Copia di attributi dall'origine alla destinazione (–solo attributi)

Se desideri copiare solo gli attributi dall'origine alla destinazione utilizzando il comando cp, utilizza l'opzione "–solo attributi

# cp --attributes-only /home/linuxtechi/distributions.txt  /mnt/backup/
# ls -l /home/linuxtechi/distributions.txt
-rw-r--r-- 1 root root 41 Feb  5 19:31 /home/linuxtechi/distributions.txt
# ls -l /mnt/backup/distributions.txt
-rw-r--r-- 1 root root 0 Feb  5 19:34 /mnt/backup/distributions.txt
#

Nel comando precedente, abbiamo copiato il file distribution.txt dalla directory home di linuxtechi alla cartella /mnt/backup, se hai notato, vengono copiati solo gli attributi e il contenuto viene saltato. La dimensione di distribution.txt nella cartella /mn/backup è zero byte.

Esempio:12) Creazione di un backup del file di destinazione esistente durante la copia (–backup)

Il comportamento predefinito del comando cp consiste nel sovrascrivere il file sulla destinazione se esiste lo stesso file, se si desidera eseguire un backup del file di destinazione esistente durante l'operazione di copia, utilizzare '–backup ' opzione, l'esempio è mostrato di seguito,

[email protected]:~# cp --backup=simple -v /home/linuxtechi/distributions.txt /mnt/backup/distributions.txt
'/home/linuxtechi/distributions.txt' -> '/mnt/backup/distributions.txt' (backup: '/mnt/backup/distributions.txt~')
[email protected]:~#

Se hai notato, è stato creato il backup e aggiunto il simbolo della tilde alla fine del file. opzione di backup accetta i seguenti parametri

  • nessuno, disattivato – non fare mai backup
  • numerato, t – eseguire backup numerati
  • esistente, nullo – numerato se esistono backup numerati, semplice altrimenti
  • semplice, mai – fai sempre dei semplici backup

Esempio:13) Conserva modalità, proprietà e timestamp durante la copia (-p)

Se desideri preservare gli attributi del file come modalità, proprietà e timestamp durante la copia, utilizza l'opzione -p nel comando cp, l'esempio è illustrato di seguito,

[email protected]:~# cd /home/linuxtechi/
[email protected]:/home/linuxtechi# cp -p devops.txt /mnt/backup/
[email protected]:/home/linuxtechi# ls -l devops.txt
-rw-r--r-- 1 root root 37 Feb  5 20:02 devops.txt
[email protected]:/home/linuxtechi# ls -l /mnt/backup/devops.txt
-rw-r--r-- 1 root root 37 Feb  5 20:02 /mnt/backup/devops.txt
[email protected]:/home/linuxtechi#

Esempio:14) Non seguire i collegamenti simbolici in Sorgente durante la copia (-P)

Se non vuoi seguire i collegamenti simbolici del sorgente durante la copia, usa l'opzione -P nel comando cp, l'esempio è mostrato sotto

[email protected]:~# cd /home/linuxtechi/
[email protected]:/home/linuxtechi# ls -l /opt/nix-release.txt
lrwxrwxrwx 1 root root 14 Feb  9 12:28 /opt/nix-release.txt -> os-release.txt
[email protected]:/home/linuxtechi#
[email protected]:/home/linuxtechi# cp -P os-release.txt /mnt/backup/
[email protected]:/home/linuxtechi# ls -l /mnt/backup/os-release.txt
-rw-r--r-- 1 root root 35 Feb  9 12:29 /mnt/backup/os-release.txt
[email protected]:/home/linuxtechi#

Nota: Il comportamento predefinito del comando cp è seguire i collegamenti simbolici nel sorgente durante la copia.

Esempio:15) Copia i file e la directory con forza usando l'opzione -f

Possono verificarsi alcuni scenari in cui il file di destinazione esistente non può essere aperto e rimosso. E se hai un file integro che può essere copiato al posto del file di destinazione esistente, usa il comando cp insieme all'opzione -f

[email protected]:/home/linuxtechi# cp -f distributions.txt  /mnt/backup/
[email protected]:/home/linuxtechi#

Esempio:16) Copia i file sparsi usando l'opzione sparse nel comando cp

Sparse è un file normale che contiene una lunga sequenza di zero byte che non consuma alcun blocco del disco fisico. Uno dei vantaggi del file sparse è che non consuma molto spazio su disco e l'operazione di lettura su quel file sarebbe abbastanza veloce.

Supponiamo di avere un'immagine nuvola sparsa denominata "ubuntu-cloud.img"

[email protected]:/home/linuxtechi# du -sh ubuntu-cloud.img
12M     ubuntu-cloud.img
[email protected]:/home/linuxtechi# cp --sparse=always ubuntu-cloud.img /mnt/backup/
[email protected]:/home/linuxtechi# du -sh /mnt/backup/ubuntu-cloud.img
0       /mnt/backup/ubuntu-cloud.img
[email protected]:/home/linuxtechi#

Diverse opzioni possono essere utilizzate durante l'utilizzo del parametro sparse nel comando cp,

  • sparso=auto
  • sempre scarso
  • sparso=mai

Questo è tutto da questo articolo, spero che ti aiuti a capire il comando cp in modo più efficace. Si prega di condividere feedback e commenti


Linux
  1. 10 Esempi di comandi "rm" per principianti Linux

  2. 10 utili esempi di comandi ncat (nc) per sistemi Linux

  3. 10 esempi di comandi Linux Cat per principianti

  4. Tutorial sul comando cd di Linux per principianti (8 esempi)

  5. Comando killall Linux per principianti (8 esempi)

Esercitazione sui comandi OD Linux per principianti (6 esempi)

Linux w Command Tutorial per principianti (5 esempi)

Tutorial sui comandi Linux ss per principianti (8 esempi)

Comando di localizzazione Linux per principianti (8 esempi)

16 Esempi pratici di comando Linux LS per principianti

Spiegazione del comando Linux mv per principianti (8 esempi)