Можно передать tar по каналу к команде разделения:
tar cvzf - dir/ | split --bytes=200MB - sda1.backup.tar.gz.
На некоторых *отклоняют системы (как OS X), можно получить следующую ошибку:
split: illegal option -- -
В этом случае попробуйте это (отметьте -b 200m
):
tar cvzf - dir/ | split -b 200m - sda1.backup.tar.gz.
Если Вы, оказывается, пытаетесь разделить файл для установки на FAT32 отформатированному использованию диска предел байта 4294967295. Например:
tar cvzf - /Applications/Install\ macOS\ Sierra.app/ | \
split -b 4294967295 - /Volumes/UNTITLED/install_macos_sierra.tgz.
Необходимо смотреть на rdiff-резервное-копирование, которое это делает rsync
внизу, но с дополнительной аналитикой, которой Вы требуете (и она делает возрастающие резервные копии способными к откату, но можно настроить для выключения этого).
Последний выпуск стар (2009), но это - знак устойчивости.
Унисон делает то, что Вы хотите, но только для удаленной синхронизации. Попытайтесь использовать ssh://localhost/path/to/dir
как один из корней.
Унисон действительно основывает свои решения о содержании файла, он не отслеживает inode числа.
В итоге мы получили простое решение, которое создало скрытое дерево жестких ссылок внутри исходной/целевой директории, основной скрипт может быть таким:
У меня есть пример скрипта на [1173567]GitHub[1173568]. Но я советую сделать большое количество тестов перед использованием этого метода на производстве.[1173140].
Если вы хотите синхронизировать файлы между несколькими машины, то вы можете просто использовать централизованную систему контроля версий, такую как Subversion (или FSVS, которая использует SVN в качестве бэкэнда). Приятно то, что все в вашем / home (что вы добавляете в систему управления версиями) затем версируется и может быть легко синхронизировано с другими машинами или откатано.
lsyncd также обрабатывает перемещенные файлы с поведением rsync + ssh, хотя и с некоторыми ошибками (я получаю около 15% перемещений, обрабатываемых как удаление / копирование, но еще предстоит выяснить Зачем). В большинстве случаев это работает.