или часть программного обеспечения, которая сделает для меня копирование и подтвердит, что все биты одинаковы.
Это то, что Rsync делает. Он может копировать один файл, целые деревья файлов, что угодно. И делает это надежным алгоритмом. В конце rsync вы можете быть уверены, что получатель получил именно то, что отправил из источника.
Там есть графический интерфейс для rsync под названием arRsync это может сделать работу с ним немного дружелюбнее, хотя это не работает для вызовов rsync-over-ssh.
Другое преимущество rsync в том, что он может выполнять копирование с возобновлением при прерывании. Особенно хорошо, если вы копируете много файлов или даже большие файлы по сетям, которые менее надежны.
Если вы копируете локальный диск и сеть, которые доступны на одном и том же Mac, вы можете сделать следующее:
rsync -avz /Volumes/LocallyAttachedDrive/path/to/big-movie.mov /Volumes/RemoteShare/path/
И вы все сделали.
Если это каталог (какие .app
а) вы можете сделать полную рекурсивную копию с помощью:
rsync -avz /Volumes/LocallyAttachedDrive/path/to/my-bundle.app /Volumes/RemoteShare/path/
Если у вас нет доступа к приемнику уровня Finder / Bonjour, вы можете сделать rsync-over-ssh:
rsync -avz /Volumes/LocallyAttachedDrive/path/to/my-bundle.app remoteuser@remotehost:/Volumes/RemoteShare/path/
Общий ключ может быть создан, поэтому вам не нужно вводить пароль, если хотите.
Изменить: вы можете использовать rsync
проверить, совпадают ли два дерева с --dry-run/-n
вариант. Если у меня есть исходное дерево /Volumes/dir
и я скопировал его /Volumes/ConnectedDrive/dir
Я могу сравнить их с:
rsync -acvn /Volumes/dir /Volumes/ConnectedDrive/
Выходные данные скажут мне, если какие-либо файлы должны быть скопированы в приемник, чтобы сделать приемник равным источнику.
Например, если я синхронизировал два дерева:
> rsync -avz ./8779 ./a/
building file list ... done
8779/
8779/.DS_Store
8779/logs/
8779/logs/MasterLog.txt
8779/logs/StartLog.txt
sent 893980 bytes received 98 bytes 596052.00 bytes/sec
total size is 10034671 speedup is 11.22
Сравнение их на равенство не должно давать никаких операций:
> rsync -acvn ./8779 ./a/
building file list ... done
sent 213 bytes received 20 bytes 155.33 bytes/sec
total size is 10034671 speedup is 43067.26
Если бы приемник немного отличался, мы бы увидели вывод примерно так:
> echo foo >> a/8779/logs/MasterLog.txt
> rsync -acvn ./8779 ./a/
building file list ... done
8779/logs/MasterLog.txt
sent 219 bytes received 26 bytes 490.00 bytes/sec
total size is 10034671 speedup is 40957.84
Теперь мы знаем MasterLog.txt
файл не тот же.