MoveGuard
Moves files, then proves the copy landed intact before it deletes the original.
Free right now — no account, no card
Preview
1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.
Free while we’re in preview
Get MoveGuard
Moves files, then proves the copy landed intact before it deletes the original.
The Mac button is for Apple Silicon. On an older Intel Mac, get this one instead.
One file, both ways. Double-click it for the window. Run the same file from a command prompt with arguments and it behaves as the command-line tool, because the engine is inside it. Nothing else to download and nothing to keep beside it.
Early preview. The window has been built and run, but not yet on a real Windows PC or Mac, so expect rough edges. The engine underneath it is fully tested.
- One file — no installer
- Runs on your machine, offline
- Source code published below
Free while in preview. It isn’t signed yet, so Windows or macOS will ask you to confirm the first time you open it. At launch, MoveGuard is included in every plan along with the rest of the range.
The invariant
A move is a copy plus a delete, and the delete is the part you can’t take back. Most tools trust the copy syscall’s return value. MoveGuard doesn’t.
Every file is written to a temporary name at the destination, then read back off the disk and hashed with SHA-256. Only when that hash matches the source does the temp file take its real name and the source get removed. If the two disagree, the source is left completely untouched, the bad copy stays at the destination as evidence, and the run continues with the rest of the batch instead of aborting.
Picking up an interrupted run
--resume re-runs a job that was killed partway. Where the destination already holds a file with a matching hash, the copy is skipped and MoveGuard goes straight to verifying and deleting the source. Files that fully completed earlier are gone from the source tree, so they’re simply not found again and not reported as errors.
--workers defaults to 4.
Next to CopySure
CopySure only ever copies and leaves the source alone. MoveGuard removes data, which is exactly why the verification here isn’t optional.
Reading on the job itself
- How to copy a large folder and know every file arrived Copy first, then re-read every file from the destination disk and compare its checksum against the source. ...
Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams
A working CLI prototype of the verified-move engine: copy + hash-verify + only-then-delete-source, resumable, parallel — a source file is never deleted before its destination copy is proven byte-identical, even under a simulated corruption-in-transit test. Explorer integration and sync rules are still on the roadmap.
Naming status
Working name only — brand verdict **RENAME** (High). Collision: MoveGuard. Rename before launch.
What it draws on
Existing paid software whose best ideas shaped this program: TeraCopy Pro, Beyond Compare, SyncBackPro, Copywhiz.
Command line
There is nothing extra to install. The program you download is the command-line tool as well: give it arguments instead of double-clicking it and it runs as one, with its output on your terminal. The standalone builds below are the same engine on its own, for machines where you would rather not ship a window at all.
MoveGuard — checksum-verified move (copy + verify, only then delete source)
Usage:
moveguard move <src> <dst> [--workers N] [--resume] [--dry-run]
A source file is ONLY ever deleted after its destination copy has been
re-read from disk and hash-verified byte-identical. If verification
fails for a file, that file's source is left completely untouched.
Flags:
--dry-run List every file that would move, its size and where it
would go, and report the problems the real run would hit
— an unreadable source, a name already taken at the
destination, a destination that cannot be written to.
Copies nothing, moves nothing, deletes nothing. Exits 2
if it found anything you should look at first.
--resume Skip re-copying files already verified at the destination.
Works with --dry-run, which then shows what would be
skipped instead of re-copied.
--workers N Files handled in parallel (default 4). Works with
--dry-run too.
Recorded from the shipped binary, not written by hand.
Source
Every file the program is built from:
console.go · console_test.go · dryrun.go · dryrun_test.go · guided.go · main.go
SHA-256 checksums · build instructions & scope notes · full build plan