zpaq is a journaling, incremental, deduplicating archiver for Windows
and Linux.
"Journaling" means that when you update a file or directory, both the
old and new versions are saved. You can extract from the archive as it
existed at any time in the past. "Incremental", means that when you back
up your entire hard drive, for example with:
zpaq -add e:backup.zpaq c:\*
only those files whose last-modified date has changed since the previous
backup are added. For 100 GB of files, this typically takes 1-2 minutes,
vs. a few hours to create the first version. "Deduplicating" means that
identical files or fragments are stored only once to save time and space.