zip itself can freshen an archive to reflect the current filesystem (e.g.
-FS). It only updates zip entries with outdated timestamps.
Is there a tool that updates a
2.zip file so that it becomes identical to
1.zip, as far as the underlying contents, with minimal I/O? It should ignore entries that have up-to-date timestamps.
rsync can do this, at the cost of actually reading both archives entirely (which could be gigabytes), even if most corresponding entries have identical timestamps -- plus
rsync wouldn't recognize identical entries compressed differently.
Alternatively, are there other archive formats / tools that would facilitate incremental backups in the way I'm describing?
NOTE: another obvious solution that I'm aware of is to mount 1.zip using some FUSE-based filesystem, and run something like
zip -r -FS 2.zip /mnt/zip/.