Я использую Unison для такой синхронизации.  Он построен поверх протокола rsync .  Помимо прочего, я синхронизирую каталоги документов между Windows и Linux.  Конфликты изменений необходимо обрабатывать вручную, но удаления обрабатываются интеллектуально. 
Первый запуск займет некоторое время, после этого нужно обрабатывать только изменения. 
РЕДАКТИРОВАТЬ: я неправильно понял ваше первоначальное требование.  На мой взгляд, это странное требование, если только по какой-то причине у вас нет файлов, которые вы хотите переносить на больший диск, и файлов, которые вы не хотите переносить на другой диск.  Отсутствие промежуточного пространства также странно. 
Если файлы на любом диске сжимаемы, то будет работать сжатый архив (zip, tar и т.д.) Одного диска в вашей системе, перемещать файлы между дисками и затем восстанавливать исходный архив на другой диск.  Также можно сжать файл на обоих дисках с помощью gzip. Перемещайте файлы назад и вперед и распаковывайте.
Если вы хотите переместить файлы в A, переместить файлы в B, переместить файлы в A ... тогда rsync с одними правилами поиска может сделать то, что вам нужно.  Небольшой сценарий оболочки вокруг него для переключения направлений на каждом проходе потребуется.  Каталоги в обеих системах должны быть разными.  Возможно, вам придется изменить / переименовать каталоги для перемещения.