Copia file e directory utilizzando il terminale Linux

Suraj Joshi 30 gennaio 2023
  1. Copia file utilizzando il comando cp
  2. Copiare i file in una directory utilizzando il comando cp
  3. Copia più file
  4. Copiare le directory usando il comando cp
  5. Copiare file e directory utilizzando il comando rsync
Copia file e directory utilizzando il terminale Linux

Possiamo copiare file e directory con i comandi cp e rsync usando il terminale Linux. Il comando cp è generalmente usato per copiare file mentre il comando rsync è generalmente usato per copiare directory.

Copia file utilizzando il comando cp

Usiamo il comando cp nei sistemi operativi Linux e Unix per copiare file e directory.

Per copiare il contenuto del file abc.txt in un altro file backup.txt, usiamo il seguente comando:

cp abc.txt backup.txt

Copia il contenuto in abc.txt in backup.txt. Qui entrambi i file devono essere nella directory di lavoro corrente.

Se il file di destinazione esiste già, il contenuto del file di destinazione verrà sovrascritto.

Possiamo aggiungere il flag -i al comando cp per ottenere un prompt di conferma prima di copiare.

cp -i abc.txt backup.txt

Produzione:

cp: overwrite 'backup.txt'?

Se vogliamo copiare il file, premiamo il tasto Y e premiamo Enter.

Per avere informazioni o un’idea di cosa si sta facendo usando il comando cp, possiamo usare il flag -v con il comando cp.

cp -v abc.txt backup.txt

Produzione:

'abc.txt' -> 'backup.txt'

Mostra che il contenuto di abc.txt viene copiato in backup.txt.

Copiare i file in una directory utilizzando il comando cp

Per copiare un file in una directory, usiamo il comando cp. Il primo argomento del comando cp sarà il nome del file da copiare, e il secondo argomento sarà il percorso assoluto o relativo della directory in cui il file deve essere copiato.

cp abc.txt ./test

Copia il file abc.txt nella directory di lavoro corrente nella cartella nella directory di lavoro corrente test.

Per copiare il file nella directory particolare con un nome diverso dal file genitore, possiamo specificare il nome del file come:

cp abc.txt ./test/test.txt

Copia il file abc.txt nella cartella test con il nome test.txt.

Copia più file

Possiamo copiare più file e directory in una particolare directory usando il comando cp specificando tutti i file sorgente e le directory seguiti dalla directory di destinazione alla fine.

cp abc.txt backup.txt test backup

Questo copia i file abc.txt e backup.txt e la cartella test nella cartella backup.

Il comando cp consente anche la corrispondenza dei modelli.

cp *.txt backup

Questo copia tutti i file con estensione .txt nella directory di lavoro corrente nella cartella backup.

Copiare le directory usando il comando cp

Usiamo il flag -r o -R insieme al comando cp per copiare la directory e le sue sottodirectory e file nella directory di destinazione.

cp -r pp Project

Copia l’intera directory pp e le sue sottodirectory e file nella directory di destinazione Project.

In questo esempio, ci sarà una directory pp all’interno della directory Project.

Tuttavia, se desideriamo copiare solo file e sottodirectory, usiamo il flag -T insieme al flag -R.

cp -RT pp Project

Copia le sottodirectory e i file della directory pp nella directory di destinazione Project.

Copiare file e directory utilizzando il comando rsync

rsync è un’utilità della riga di comando per sincronizzare file e directory tra due host. Se sia il percorso di origine che quello di destinazione rappresentano il localhost, il comando rsync si comporta come un comando di copia.

rsync -a abc.txt backup.txt

Copia il contenuto di abc.txt in backup.txt.

Qui, il flag -a tiene conto della conservazione di collegamenti simbolici, tempi di modifica, gruppo, proprietà e autorizzazioni durante la copia.

Allo stesso modo, possiamo copiare una directory in un’altra directory.

rsync -a /abc /backup-abc

Copia il contenuto della directory abc nella directory di destinazione backup-abc.

Qui, se omettiamo la barra finale /, la directory di origine verrebbe copiata all’interno della directory di destinazione.

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Articolo correlato - Linux Files and Directories