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