Copiare due cartelle in Linux con rsync
Se si vogliono copiare due cartelle in Linux si può usare rsync da linea di comando.
Preparo l’ambiente di test creando le seguenti cartelle e file:
cartella “/share/source”
cartella “/share/destination”
cartella “/share/source/folder 1”
cartella “/share/source/folder 2”
file “/share/source/folder 1/file 1”
file “/share/source/folder 2/file 2”
Voglio copiare il contenuto della cartella “source” nella cartella “destination”. Quindi lancio:
[/share] # rsync -avc "source/" "destination"
Come mi aspettavo, ecco il risultato:
sending incremental file list ./ folder 1/ folder 1/file 1.txt folder 2/ folder 2/file 2.txt sent 253 bytes received 61 bytes 628.00 bytes/sec total size is 12 speedup is 0.04
Verifico il risultato:
[/share] # ls -lR destination/ destination/: drwxrwx--- 2 admin administ 4096 Dec 2 17:24 folder 1/ drwxrwx--- 2 admin administ 4096 Dec 2 17:24 folder 2/ destination/folder 1: -rwxrwx--- 1 admin administ 6 Dec 2 17:24 file 1.txt* destination/folder 2: -rwxrwx--- 1 admin administ 6 Dec 2 17:24 file 2.txt*
Con un bel man rsync si possono vedere le opzioni che ho usato: https://linux.die.net/man/1/rsync
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X) -v, --verbose increase verbosity -c, --checksum skip based on checksum, not mod-time & size
Qualche nota:
- Nel comando del confronto, la slash “/” di “source/” vuol dire “il contenuto di source”.
- L’opzione “-a” equivale a “-rlptgoD”. Incollo qui sotto le spiegazioni:
-r, --recursive recurse into directories -l, --links copy symlinks as symlinks -p, --perms preserve permissions -t, --times preserve modification times -g, --group preserve group -o, --owner preserve owner (super-user only) -D same as --devices --specials --devices preserve device files (super-user only) --specials preserve special files