Confrontare due cartelle in Linux con rsync
Se si vogliono confrontare 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”
cartella “/share/destination/folder 1”
file “/share/destination/folder 1/file 1”
Voglio confrontare la cartella “source” con la cartella “destination”. Quindi lancio:
[/share] # rsync -avnc "source/" "destination"
Come mi aspettavo, ecco il risultato:
sending incremental file list ./ folder 2/ folder 2/file 2.txt sent 155 bytes received 23 bytes 356.00 bytes/sec total size is 12 speedup is 0.07 (DRY RUN)
la cartella “folder 2” e il file “folder 2/file 2.txt” sono quelli che mancano nella cartella “destination”.
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 -n, --dry-run perform a trial run with no changes made -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
- L’opzione “-n” è indispensabile per il confronto!!