rsync

Come usare rsync per copiare i file

Come usare rsync per copiare i file
Rsync è uno strumento da riga di comando in Linux che viene utilizzato per copiare file da una posizione di origine a una posizione di destinazione. Puoi copiare file, directory e l'intero file system e mantenere sincronizzati i file tra directory diverse. Non si limita a copiare i file. Riduce la quantità di dati inviati in rete inviando solo i file nuovi o aggiornati. Ecco perché è considerata una grande utility per la copia e il backup dei file. Rsync supporta anche la copia di file su un sistema remoto tramite SSH.

In questo articolo spiegheremo come usare rsync per copiare file con alcuni esempi pratici. Spiegheremo anche l'uso di rsync nella copia di un singolo file, più file e directory su sistemi sia locali che remoti. Tratteremo come utilizzare Rsync per:

Abbiamo spiegato i comandi e la procedura menzionati in questo articolo su Ubuntu 20.04 LTS. Avrai bisogno del terminale della riga di comando per copiare i file usando rsync. Per aprire l'applicazione Terminale da riga di comando, usa la scorciatoia da tastiera Ctrl+Alt+T.

Installazione di Rsync

Rsync è preinstallato in Ubuntu 20.04 LTS. Tuttavia, se viene rimosso accidentalmente dal sistema, è possibile installarlo come segue:

$ sudo apt install rsync

Ecco alcune delle opzioni comunemente utilizzate che possono essere utilizzate con rsync:

-a: modalità archivio
-v: mostra i dettagli del processo di copia
-p: mostra la barra di avanzamento
-r: copia i dati in modo ricorsivo
-z: comprime i dati
-q: sopprimere l'uscita

Copia file e directory localmente

La sintassi generale di rsync è:

$ rsync [opzione] [sorgente] [destinazione]

Copia un singolo file localmente

Se desideri copiare un file da una posizione a un'altra all'interno del tuo sistema, puoi farlo digitando rsync seguito dal nome del file di origine e dalla directory di destinazione.

Ad esempio, per copiare un singolo file “file1.txt" dalla posizione corrente che è la directory Home alla directory ~/Documents, il comando sarebbe:

$ rsync /home/tin/file1.txt /home/tin/Documenti

Nota: invece di “/home/tin/file1.txt", possiamo anche digitare "file1" poiché stiamo attualmente lavorando nella directory home. Inoltre, possiamo usare ~/Documents invece di menzionare il percorso completo come "/home/tin/Documents".

Copia più file localmente

Se desideri copiare più file contemporaneamente da una posizione all'altra all'interno del tuo sistema, puoi farlo digitando rsync seguito dal nome del file sorgente e dalla directory di destinazione.

Ad esempio, per copiare i file “file2.txt" e "file3.txt" dalla directory Home alla directory ~/Documents, il comando sarebbe:

$ rsync /home/tin/file2.txt /home/tin/file3.txt /home/tin/Documenti

Per copiare tutti i file con la stessa estensione, puoi utilizzare il simbolo asterisco(*) invece di specificare singolarmente i nomi dei file. Ad esempio, per copiare tutti i file dalla directory Home che terminano con ".zip" nella directory ~/Documents, utilizzeremo:

$ rsync /home/tin/*.zip ~/Documenti

Copia le directory localmente

Se vuoi copiare una directory con la sua sottodirectory e tutti i contenuti da una posizione all'altra all'interno del tuo sistema, puoi farlo digitando rsync seguito dalla directory di origine e di destinazione.

Ad esempio, per copiare la directory "sample" nella directory "test/" all'interno della directory Home, il comando sarebbe:

$ rsync -av /home/tin/sample /home/tin/test

Nota: specificando "/" dopo che la directory di origine copia solo il contenuto della directory. Se non specifichiamo la “/”dopo la directory di origine, anche la directory di origine verrà copiata nella directory di destinazione.

Come nel seguente output, puoi vedere che anche la nostra directory di origine "sample" viene copiata nella directory di destinazione (poiché abbiamo usato "sample" invece di "sample/" come directory di origine).

Rsync supporta il trasferimento incrementale come puoi vedere nell'output sopra che trasferisce solo i file che sono nuovi o aggiornati.

Copia i file in base alla dimensione massima

Durante la copia, possiamo anche specificare la dimensione massima dei file che possono essere copiati con l'opzione "-max-size". Ad esempio, per copiare i file non più grandi di 2000k dalla directory ~/Downloads alla directory ~/Documents, il comando sarebbe:

$ rsync -a --max-size=2000k /home/tin/Download/* /home/tin/Documents

Questo comando copierà tutti i file da ~/Downloads alla directory ~/Documents tranne quelli più grandi di 2000k.

Copia i file in base alla dimensione minima

Allo stesso modo, possiamo anche specificare la dimensione minima dei file che possono essere copiati con l'opzione "-min-size". Ad esempio, per copiare i file non inferiori a 5M dalla directory ~/Downloads alla directory ~/Documents, il comando sarebbe:

$ rsync -a --min-size=5M /home/tin/Download/ /home/tin/Documents

Questo comando copierà tutti i file da ~/Downloads nella directory ~/Documents tranne quelli inferiori a 5M.

Escludi file

Durante la copia di file da una directory a un'altra, è possibile escludere alcuni file utilizzando l'opzione "-exclude" seguita dal nome del file o dall'estensione del tipo di file.

Ad esempio, per escludere tutti i .zip durante la copia dei file da ~/Downloads nella directory ~/Documents, il comando sarebbe:

$ rsync -a --exclude="*.zip" /home/tin/Download/ /home/tin/Documenti

Copia file e directory in remoto

Con Rsync, puoi copiare un singolo file, più file e directory su un sistema remoto. Per copiare file e directory in remoto, avrai bisogno di:

Prima di copiare i file utilizzando rsync, assicurati di poter accedere al sistema remoto tramite SSH:

$ ssh utente_remoto@ip_remoto


La sintassi generale per copiare file e directory su un sistema remoto usando rsync:

$ rsync [opzione] [sorgente] [utenteremoto@ipremote:destinazione]

Ad esempio, per copiare un singolo file “file.txt" da ~/Download nella directory ~/Documents del sistema remoto, il comando sarebbe:

$ rsync -v ~/Download/file1.txt [email protected]:~/Documenti

Allo stesso modo, per copiare la directory "~/Downloads/files" in un sistema locale con la sua sottodirectory e tutti i contenuti nella directory "~/Downloads/samples" sul sistema remoto:

$ rsync -rv ~/Download/file [email protected]:~/Download/campioni

Puoi anche copiare i file e le directory dalla macchina remota alla tua macchina locale. Ad esempio, per copiare un "file2.txt" dal sistema remoto al desktop del sistema locale:

$ rsync -v [email protected]:~/Download/file2.txt ~/Desktop/

Allo stesso modo, per copiare una directory dal sistema remoto al sistema locale

$ rsync -rv [email protected]:~/Download/campione ~/Desktop/test

Puoi anche utilizzare tutte le opzioni come -max-size, -min-size, -exclude e altre durante la copia di file da/verso il sistema remoto.

Rsync è un ottimo strumento per copiare file dall'origine alla destinazione sia localmente che in remoto. Include un ampio set di opzioni che ti offre flessibilità e controllo durante il trasferimento di file da/verso il sistema remoto.

I migliori giochi da giocare con il tracciamento delle mani
Oculus Quest ha recentemente introdotto la grande idea del tracciamento manuale senza controller. Con un numero sempre crescente di giochi e attività ...
Come mostrare l'overlay OSD in app e giochi Linux a schermo intero
Giocare a giochi a schermo intero o utilizzare app in modalità a schermo intero senza distrazioni può tagliarti fuori dalle informazioni di sistema ri...
Le 5 migliori carte di acquisizione del gioco
Abbiamo tutti visto e amato i giochi in streaming su YouTube. PewDiePie, Jakesepticye e Markiplier sono solo alcuni dei migliori giocatori che hanno g...