Kopia restore queries

Hello

I had a couple of questions about restore…

First kopia snapshot restore & kopia restore I guess these are just aliases… right?

Is it possible to do a incremental restore by terminating and resuming with --skip-existing ?
kopia restore k..... /data/... --write-files-atonomically
kopia restore k..... /data/... --write-files-atonomically --skip-existing

Thanks,

Regards,
SD.

I know this topic is two years old, but I’d still like to offer a brief answer, as I recently encountered the same issue myself.

Yes, using --write-files-atomically --skip-existing will produce the desired effect: If a problem occurs while restoring a file, the --write-files-atomically option ensures that any partially written file at the destination is deleted, provided the restoration didn’t complete successfully. This prevents scenarios where you’re left with a 500MB incomplete file when the original file was actually 1GB. The --skip-existing option causes Kopia to entirely skip existing files at the destination. However, this is where a potential risk lies:

If you’re restoring a directory that includes a file like foo.dat, which was last modified on May 10, 2025, and is 7MB (7168 KB) in size, and a file with the same name already exists at the destination, Kopia will skip it completely. It will not verify whether the size or timestamp matches the snapshot metadata — the file will simply be ignored. This remains true even if, for example, the file at the destination is silently corrupted due to disk damage affecting individual clusters. Currently, Kopia lacks a mechanism like Duplicacy’s restore -hash to ensure that the destination file is identical to the one in the snapshot.

That’s why, based on my own practical experience, I strongly recommend using --skip-existing only when you’re 100% confident that the existing files at the restore location are intact. Otherwise, it’s safer to restore to a different location (i.e., not in-place) and then use other tools to compare the contents of the directories — ideally based on file checksums — to ensure data integrity.