GNU/Linux >> Linux Esercitazione >  >> Linux

Comando cp in Linux:7 esempi pratici

Uno dei comandi che devi conoscere in Linux è cp. Viene spesso chiamato comando copy in Linux ed è in realtà l'abbreviazione di copy e fa esattamente come suggerisce il nome:copia.

cp viene utilizzato per copiare file da una posizione all'altra. cp può anche essere usato per copiare intere directory in una nuova posizione. Puoi usarlo anche per copiare più file e directory.

7 Esempi di utilizzo del comando cp in Linux

Vediamo come puoi usare il comando cp per vari scopi:

1. Come copiare un file

L'esempio più semplice sarebbe copiare un file. Per farlo, devi solo specificare il file di origine e la directory o il file di destinazione.

cp source_file target_directory/target_file

Nell'esempio sopra, se target_fille non esiste nella directory_destinazione, creerà file_destinazione.

Tuttavia, se il new_file esiste già, lo sovrascriverà senza chiedere. Ciò significa che il contenuto del file di destinazione esistente verrà modificato con il contenuto del file di origine.

Ti mostrerò come gestire la sovrascrittura dei file più avanti in questo tutorial.

Tieni presente :per impostazione predefinita, i comandi cp vengono sovrascritti se il file di destinazione esiste già. Questo comportamento può essere modificato con l'opzione -n ​​o -i, spiegata più avanti.

2. Come copiare più file

Se desideri copiare più file contemporaneamente in una nuova posizione, puoi farlo nel modo seguente:

cp file1 file2 file3 fileN target_directory

Questo copierà tutti i file specificati nella directory di destinazione. Se la directory di destinazione ha file che corrispondono al nome dei file di origine, verrà sovrascritta.

3. Diversi modi per gestire la sovrascrittura durante la copia dei file

Probabilmente non vorrai sempre che i tuoi file di destinazione esistenti vengano sovrascritti e questo è del tutto logico.

Per impedire la sovrascrittura di file esistenti, è possibile utilizzare l'opzione -n. In questo modo, cp non sovrascriverà i file esistenti.

cp -n source_file target_directory

Ma forse vuoi sovrascrivere alcuni file. Puoi usare l'opzione interattiva -i e ti chiederà se vuoi sovrascrivere i file esistenti.

cp -i source_file target_directory
cp: overwrite 'target_directory/source_file'?

Puoi inserire y per sovrascrivere il file esistente o n per non sovrascriverlo.

C'è anche un'opzione per fare backup automatici. Se usi l'opzione -b con il comando cp, sovrascriverà i file esistenti ma prima creerà un backup dei file sovrascritti.

cp -b file.txt target_dir/file.txt
ls target_dir
file.txt file.txt~

Il backup del file termina con ~.

Puoi anche utilizzare l'opzione di aggiornamento -u quando si tratta di sovrascrittura. Con l'opzione -u, i file di origine verranno copiati nella nuova posizione solo se il file di origine è più recente del file esistente o se non esiste nella directory di destinazione.

Per riassumere:

  • -i :Conferma prima di sovrascrivere
  • -n :Nessuna sovrascrittura
  • -b :Sovrascrittura con backup
  • -u :Sovrascrivi se il file di destinazione è vecchio o non esiste

4. Come copiare una directory in Linux

Puoi anche usare il comando cp per copiare una directory in Linux inclusi tutti i suoi file e sottodirectory. Devi usare l'opzione -r qui che sta per ricorsivo.

cp -r source_dir target_dir

Questo copierà l'intera source_dir in target_dir. Ora la source_dir sarà una sottodirectory della target_dir.

ls target_dir
source_dir

5. Come copiare solo il contenuto di una directory, non la directory stessa

Nell'esempio precedente, hai copiato l'intera directory in una nuova posizione.

Ma se vuoi semplicemente copiare il contenuto della directory di origine nella directory di destinazione, dovresti aggiungere /. alla fine della directory di origine. Ciò indicherà che desideri copiare solo il contenuto della directory di origine.

Vediamolo con un esempio:

ls source_dir
source_file_1 source_file2

Ora copia il contenuto della directory di origine:

cp -r source_dir/. target_dir

Se controlli ora il contenuto della directory di destinazione, vedrai che sono stati copiati solo i contenuti della directory di origine.

ls target_dir
source_file_1 source_file2

6. Come copiare più directory

Puoi anche copiare più directory contemporaneamente con il comando cp in Linux.

Usalo come hai fatto per una singola directory.

cp -r source_dir1 source_dir2 source_dir3 target_dir

È sempre l'ultimo argomento nel comando che viene preso come directory di destinazione.

Se vuoi copiare solo il contenuto di più directory contemporaneamente, puoi farlo anche tu:

cp -r source_dir1/. source_dir2/. source_dir3/. target_dir

In effetti, puoi mischiare le directory, i loro contenuti e file.

cp -r source_dir1 source_dir2/. source_file target_dir
Suggerimento :puoi usare la modalità dettagliata con l'opzione -v per vedere quali file vengono copiati.

7. Come preservare gli attributi durante la copia

Quando copi un file in una nuova posizione, i suoi attributi come i permessi del file e i timestamp del file vengono modificati.

Se vuoi conservare gli attributi del file originale, puoi copiare i file con l'opzione -p.

Vediamolo con un esempio.

ls -l /etc/services 

-rw-r--r-- 1 root root 19183 Dec 26  2016 /etc/services

Se provo a copiare questo file normalmente, i suoi attributi verranno modificati:

cp /etc/services .
ls -l services 
-rwxrwxrwx 1 abhishek abhishek 19183 Nov 25 20:45 service

Ma se utilizzo l'opzione p, il file copiato manterrà la modalità, la proprietà e il timestamp.

cp -p /etc/services .
ls -l services 
-rw-r--r-- 1 abhishek abhishek 19183 Dec 26 2016 services

Come puoi vedere, hai conservato la modalità di accesso e il timestamp del file sorgente con l'opzione -p.

Ma aspetta! Non doveva preservare anche la proprietà dei file di origine? Ma qui il proprietario (root) del file sorgente è stato cambiato in abhishek.

Questo perché solo root ha il permesso di cambiare la proprietà di un file di proprietà di root. Se usi l'opzione -p con un file non di proprietà di root, ne manterrà la proprietà. Oppure puoi eseguire il comando con sudo per preservare la proprietà di un file di proprietà di root.

Puoi anche specificare gli attributi che desideri preservare. Ma poi dovrai usare l'opzione –preserve.

cp --preserve=timestamp /etc/services .
ls -l services 
-rw-r--r-- 1 abhishek abhishek 19183 Dec 26  2016 services

Come puoi vedere nell'output sopra, ha conservato solo il timestamp del file sorgente.

Puoi esplorare ulteriormente il comando cp sfogliando la sua pagina man. Gli esempi mostrati qui sono quelli più comuni che utilizzerai come utente Linux, amministratore di sistema o sviluppatore di software.

Se ti è piaciuto questo tutorial, condividi questo articolo sui social media e vari forum.


Linux
  1. Comando di arresto di Linux:5 esempi pratici

  2. 5 Esempi pratici del comando dd in Linux

  3. comando Linux cp

  4. 10 esempi pratici di comandi Linux nm

  5. sa Esempi di comandi in Linux

12 Esempi pratici di In Command in Linux

15 esempi pratici di comando Rsync in Linux

5 esempi pratici di Tail Command in Linux

echo Command in Linux:7 esempi pratici

Pratico comando Ping negli esempi di Linux

Esempi di comandi id in Linux