
La duplicazione e la copia di documenti e registri è probabilmente l'attività più ampiamente riconosciuta e utilizzata che eseguirai quando lavori con la riga di comando di Linux. In Linux, ci sono alcuni ordini per duplicare documenti, gli ordini cp e rsync sono i più conosciuti.
La maggior parte degli utenti Linux utilizza e usa frequentemente il comando cp quando copia i file e il comando rsync quando copia le directory.
Prima di iniziare
Per poter copiare file e directory, devi avere almeno i permessi di lettura sui file di origine e i permessi di scrittura sulle directory di destinazione.
Copiare file con il comando cp
Il comando cp è un'utilità della riga di comando per copiare file e directory su un sistema Linux da una posizione all'altra sulla stessa macchina.
Il caso d'uso più semplice consiste nel copiare i file nella directory di lavoro corrente. Ad esempio, per copiare un file denominato file.txt
nella directory corrente come file_backup.txt,
eseguire il comando seguente:
cp file.txt file_backup.txt
Se il file di destinazione esiste, i file con lo stesso nome ed estensione verranno sovrascritti. Per richiedere la conferma, utilizzare le opzioni -i
.
cp -i file.txt file_backup.txt
Quando si utilizza il comando cp per copiare i file, i nuovi file saranno di proprietà dell'utente che esegue il comando. Usa l'opzione -p
per preservare la modalità del file, la proprietà e i timestamp :
cp -p file.txt file_backup.txt
Un'altra opzione che potrebbe essere utile è -v
. Quando si utilizza questa opzione il comando stamperà ciò che si sta facendo:
cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'
Copia file in un'altra directory
Per copiare un file in un'altra directory, è necessario specificare un percorso assoluto o relativo alla directory di destinazione. Nell'esempio seguente, copiamo il file file.txt
nella directory /backup
:
cp file.txt /backup
Quando si specifica solo il nome della directory come destinazione, il file copiato avrà lo stesso nome del file originale.
Se vuoi copiare un file con un nome diverso, devi specificare il nome del file desiderato:
cp file.txt /backup/file_baru.txt
Il comando precedente copierà il file nella directory specificata come file_baru.txt
.
Copia più file
È anche possibile copiare più file contemporaneamente specificando i nomi dei file seguiti dalla directory di destinazione:
cp file.txt file1.txt file2.txt directory
Quando si copiano più file, la destinazione deve essere una directory.
Il comando cp consente anche di utilizzare la corrispondenza dei modelli. Ad esempio, per copiare tutti i file png
dalla directory corrente alla directory /backup
che utilizzerai:
cp *.png /backup
Come copiare la directory in Linux con il comando cp
Per copiare una directory, inclusi tutti i file e le sottodirectory, utilizzare l'opzione -R. Nell'esempio seguente copiamo la directory ~/Pictures
nella directory ~/Pictures_backup
:
cp -R Pictures Pictures_backup
Il comando precedente creerà una directory di destinazione e copierà ricorsivamente tutti i file e le sottodirectory dalla directory di origine alla directory di destinazione.
Le opzioni utilizzate durante la copia dei file possono essere utilizzate anche durante la copia delle directory. La differenza principale è che quando si copiano le directory è necessario utilizzare le opzioni -R
.
Come copiare file e directory su Linux con il comando rsync
Rsync è un'utilità da riga di comando veloce e versatile. Rsync sincronizza file e directory tra due posizioni. Rsync può essere utilizzato per copiare file in una posizione locale o remota.
Rsync fornisce una serie di opzioni che controllano ogni aspetto del suo comportamento. Le opzioni più utilizzate sono -a
che copierà le directory in modo ricorsivo, trasferirà dispositivi personalizzati e bloccherà, conserverà collegamenti simbolici , tempi di modifica, gruppi, proprietà e autorizzazioni di file.
Per copiare un file da una posizione all'altra puoi usare il seguente comando:
rsync -a file.txt file_backup.txt
Se il file di destinazione esiste, rsync lo sovrascriverà.
Puoi usare lo stesso comando di cui sopra per copiare le directory con rsync:
rsync -a / var / www / public_html / / var / www / public_html_backup /
Nota che Rsync considera le barre /
alla fine della fonte con un concetto diverso. Se aggiungi una barra finale alla directory di origine, copierà solo il contenuto di la directory nella directory di destinazione. Quando la barra finale viene rimossa, rsync copia la directory sorgente nella directory di destinazione.
Conclusione
In questa guida abbiamo imparato a copiare file e directory su sistemi basati su Linux e Unix utilizzando le utilità cp e rsync.
Come installare e configurare Mono su Rocky Linux 8 e CentOS 8