O conhecido e amplamente usado rsync tem uma opção --update
que:
forces rsync to skip any files which exist on the destination
and have a modified time that is newer than the source file.
Isso permite que você modifique a versão local ou a versão na unidade usb e, em seguida, execute:
$ rsync -au local_file /media/usb/file
$ rsync -au /media/usb/file local_file
Isso garantirá que os dois arquivos estarão na última revisão.
rsync
foi portado para o Windows também.