GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare il comando cp per copiare file e directory

La copia di file o directory è una delle attività di base in ogni sistema operativo. L'attività di backup consiste fondamentalmente nella creazione di una copia di file e directory. Sul sistema Linux, possiamo usare il comando cp per farlo.

Come accennato in precedenza, il comando cp è un comando per creare una copia di file e directory. Ecco alcuni esempi del comando cp che potrebbero essere utili nelle operazioni quotidiane

1) comando cp

Questo è un utilizzo di cp molto semplice. Per copiare un nome file myfile.txt da una posizione a un'altra, possiamo digitare in questo modo:

$ cp myfile.txt /home/pungki/office

Se non digitiamo il percorso assoluto, significa che stiamo copiando un file nella directory corrente. Dall'esempio sopra, miofile.txt si trova in /home/pungki/Documents . Non è necessario digitare /home/pungki/Documents/myfile.txt per copiare miofile.txt se siamo in quel /home/pungki/Documents directory. Mentre /casa/pungki/ufficio è una cartella in cui verrà copiato il file.

2) Copia più file contemporaneamente

Per copiare più file contemporaneamente, possiamo semplicemente mettere i file dietro il comando di copia che è separato da uno spazio. Ecco un esempio :

$ cp file_1.txt file_2.txt file_3.txt /home/pungki/office

3) Copia una directory

Copiare una directory è un po' complicato. Devi aggiungere -r o -R opzione per farlo. -r o -R opzione significa ricorsivo. Questa opzione è d'obbligo se la directory è vuota o meno. Ecco un esempio :

$ cp -r directory_1 /home/pungki/office

Un'altra cosa da notare è che devi rimuovere la barra finale dietro il nome della directory. In caso contrario, verrà visualizzato un messaggio di errore come cp :ousing directory 'directory_1/'

Se ricevi quell'errore, la directory non verrà copiata nella cartella di destinazione.

4) Crea collegamenti reali ai file invece di copiarli

Copiare il file significa che è necessario disporre di spazio nella memoria per archiviare i file copiati. A volte, per qualsiasi motivo, potresti voler creare "scorciatoie" o collegamenti ai file invece di copiarli. Per fare ciò, possiamo usare -l opzione.

$ cp -l file_4.txt /home/pungki/office

Dallo screenshot sopra, vediamo che un hardlink di file_4.txt è stato copiato in /home/pungki/office/file_4.txt . È contrassegnato dallo stesso inode, 835386 . Ma tieni presente che gli hardlink non possono essere creati nelle directory. Diamo un'occhiata a un esempio qui sotto.

La directory originale_1 ha il numero di inode 278230

Il file originale file_5.txt ha il numero di inode 279231

Esegui il comando cp sulla directory_1

La directory_1 copiata ha il numero di inode 274800

Il file_5.txt copiato aveva il numero di inode 279231. Lo stesso del suo file originale

5) Crea collegamenti simbolici ai file

Esiste un altro tipo di link chiamato softlink o link simbolici . Usiamo -s opzione per farlo. Ecco un comando di esempio.

$ cp -s /home/pungki/Documents/file_6.txt file_6.txt

La creazione di collegamenti simbolici può essere eseguita solo nella directory corrente. Nello screenshot sopra, vogliamo creare collegamenti simbolici dalla directory di origine - da /home/pungki/Documents/file_6.txt a /home/pungki/office . Ma per creare link simbolici, devo dentro /home/pungki/office come cartella di destinazione. Una volta che riesco ad essere lì, posso eseguire cp -s comando sopra.

Quindi, quando elenchi il file con i dettagli, vedrai che /home/pungki/office/file_6.txt sta puntando al file originale. È contrassegnato da una freccia dopo il nome del file.

6) Copia senza seguire i collegamenti simbolici in Sorgente

Per fare ciò, possiamo utilizzare -P opzione. Quando il comando cp ha trovato un file con collegamenti simbolici, lo copierà così com'è. Dai un'occhiata all'esempio qui sotto.

$ cp -P file_6.txt ./movie

Come puoi vedere, il comando cp copierà file_6.txt come è. Il tipo di file è ancora un collegamento simbolico.

7) Copia con i seguenti collegamenti simbolici in Sorgente

Ora possiamo farlo con -L opzione. Fondamentalmente, questo è l'opposto dell'opzione -P sopra. Ecco l'esempio.

$ cp -L file_6.txt ./movie

Con questa opzione, il file copiato è lo stesso file con il file sorgente di file_6.txt . Questo è noto dalla dimensione del file. Il file copiato ha 50 byte dimensione del file mentre il file_6.txt come collegamento simbolico ha 33 byte dimensione del file.

8) Archivia i file

Quando copieremo una directory, useremo -r o -R opzione. Ma possiamo anche usare -a opzione per archiviare il file. Questo creerà una copia esatta di file e directory inclusi eventuali collegamenti simbolici. Ecco un esempio :

$ cp -a directory_1/ /home/pungki/office

Il comando precedente copierà una directory denominata directory_1 nella cartella /home/pungki/office . Come puoi vedere, il file_6.txt ancora copiati come collegamenti simbolici.

9) Spiega cosa si sta facendo

Per impostazione predefinita, quando l'attività di copia ha esito positivo, vedremo di nuovo un prompt dei comandi. Se vuoi sapere cosa succede durante la copia del file, possiamo usare -v opzione.

$ cp -v *.txt /home/pungki/office

Quando copiamo tutti i file txt nella directory corrente in /home/pungki/office/ directory, -v l'opzione mostrerà cosa viene fatto. Queste informazioni aggiuntive ci renderanno più sicuri sull'attività di copia.

10) Copia solo quando il file sorgente è più recente

Per fare ciò, possiamo usare -u opzione. Dai un'occhiata a questo esempio qui sotto.

$ cp -vu *.txt /home/pungki/office

All'inizio, vediamo che file_1.txt ha 0 byte dimensione del file. Quindi lo modifichiamo usando vi, aggiungiamo del contenuto e lo salviamo. Successivamente, vediamo che la dimensione del file è cambiata in 36 byte.

Nel frattempo, in /home/pungki/office directory, abbiamo già tutto *file .txt. Quando usiamo -u opzione, combinata con -v opzione per vedere cosa viene fatto, il comando cp copierà solo uno o più file più recenti dalla directory di destinazione. Di conseguenza, vediamo che solo file_1.txt viene copiato nella directory /home/pungki/office .

11) Usa la modalità interattiva

La modalità interattiva chiederà se la cartella di destinazione ha già il file. Per attivare la modalità interattiva, usa -i opzione.

$ cp -ir directory_1/ /home/pungki/office/

12) Crea la data di backup di ogni file copiato

Quando la cartella di destinazione ha già il file, per impostazione predefinita il comando cp sovrascriverà lo stesso file nella directory di destinazione. Utilizzo di --backup opzione, il comando cp eseguirà un backup di ogni file di destinazione esistente. ../office farà riferimento a /home/pungki/office . Ecco un esempio :

$ cp --backup=simple -v *.txt ../office

Come possiamo vedere, --backup=simple l'opzione creerà un file di backup contrassegnato da un segno di tilde (~) alla fine del file. --backup opzione ha alcuni Control, che sono:

  • nessuno, disattivato : non esegue mai backup (anche se viene fornito --backup)
  • numerato, t : effettuare backup numerati
  • esistente, zero : numerato se esiste un backup numerato, semplice altrimenti
  • semplice, mai : fai sempre dei backup semplici

13) Copia solo gli attributi del file

Il comando Cp ci fornisce anche --attributes-only opzione. Come possiamo intuire dal suo nome, questa opzione copierà solo il nome di un file e i suoi attributi senza copiare alcun dato. Ecco un esempio.

$ cp --attributes-only file_6.txt -v ../office

Dallo screenshot sopra, il file file_6.txt originale ha 50 byte dimensione del file. Utilizzo di --solo attributi opzione, il file copiato avrà 0 byte dimensione del file. Questo perché il contenuto del file non viene copiato.

14) Forza la copia

Usando -f l'opzione forzerà l'attività di copia. Se non è possibile aprire i file di destinazione, allora -f riproverò.

$ cp -f *.txt -v ../office

15) Rimuovi la destinazione prima della copia

Per fare ciò, possiamo utilizzare --remove-destination opzione. Questa opzione è in contrasto con l'opzione -f sopra. Se il comando cp trova lo stesso nome file nella cartella di destinazione, il comando cp rimuoverà prima il file di destinazione, quindi copierà quello nuovo. Ecco un esempio.

$ cp --remove-destination *.txt -v ../office

Il comando Cp è uno dei comandi di base di Linux. Per chi vuole imparare Linux, deve conoscere questo comando. Ovviamente puoi digitare man cp o cp --help dalla tua console per visualizzare la sua pagina di manuale per esplorare più dettagli.

Leggi anche:

  • Una breve descrizione di 106 comandi Linux con esempi

Linux
  1. Come copiare file e directory in Linux

  2. Come comprimere file e directory su Linux (con esempi)

  3. Copia file e directory in Linux

  4. Come usare il comando Rsync in Linux?

  5. Come copiare file in Linux e Unix? 10 cp Esempi di comandi

Come utilizzare il comando SCP per trasferire file

Come rinominare file e directory in Ubuntu 20.04

Come utilizzare il comando rsync per copiare i dati localmente e su SSH

COME USARE IL COMANDO TAIL

Come usare il comando head

Come copiare file e directory nel terminale Linux