How to verify a file copy on Mac
To verify a file copy on Mac, compare a checksum of the original against a checksum of the copy. For one file, open Terminal and run shasum -a 256 on the source and again on the destination. If the two hashes match exactly, the copy is bit-for-bit correct. If they differ at all, the copy is corrupt.
For a whole camera card (hundreds of clips), checksumming files by hand doesn't scale. Copsy — a free Mac camera-offload app — hashes every file during the copy, writes an ASC-MHL manifest (the film-set / Netflix-delivery standard), then re-reads the destination and confirms each one automatically.
Download Copsy for Mac → · macOS 13+ · no account needed · free
Why verify a copy at all?
Copying a file is not guaranteed to be perfect. A flaky USB cable, a failing card reader, a card that's near end-of-life, a kernel hiccup, an interrupted write — any of these can produce a destination file that looks the right size in Finder but is silently corrupt inside. With a Word document you'd notice. With a 4-minute take that won't play until you're back in the edit suite three days later, you won't, and by then the card may be wiped.
Verification closes that gap. Instead of trusting that the bytes arrived, you prove it: you read the copy back and confirm it's identical to the source. On a film set this is non-negotiable; for anyone moving irreplaceable footage off a card, it should be too.
What a checksum proves (and what it doesn't)
A checksum (or hash) is a short fingerprint — a string like 3a7bd3e2… — computed from every byte of a file. Change a single bit anywhere in the file and the checksum changes completely. That's the whole trick:
- Source hash == destination hash → the copy is identical to the original. Nothing was dropped, truncated, flipped or corrupted in transit.
- Hashes differ → something went wrong. Re-copy the file before you trust it or wipe the card.
What a checksum does not prove: that the original was good. If the camera wrote a bad clip to the card, a verified copy of a bad clip is still bad. Verification proves fidelity of the copy, not the quality of what you shot. That's exactly what you want when offloading: your job is to get the card to a drive without losing or altering anything.
MD5 vs SHA-256 vs xxHash — which one?
For copy verification you only need to detect accidental corruption, so any of them work. xxHash is the fastest and is common in media/offload tools. SHA-256 is slower but cryptographically strong. MD5 is dated but perfectly fine for catching copy errors. The ASC-MHL standard supports MD5, SHA-1, SHA-256 and xxHash, so professional tools let you choose. The golden rule: hash the source and the destination with the same algorithm and compare.
The manual way: checksum a file in Terminal (shasum)
macOS ships with shasum and md5 built in, so there's nothing to install. This is the right approach for a single file or a quick spot-check.
- Open Terminal (Applications → Utilities → Terminal).
- Hash the source file. Type
shasum -a 256(with a trailing space), then drag the original file from Finder into the Terminal window to paste its path, and press Return. You'll get a long hash followed by the filename. - Hash the copy. Do the same for the copied file at the destination:
shasum -a 256then drag in the copied file, press Return. - Compare the two hashes. If the hash strings are character-for-character identical, the copy is verified. If they differ anywhere, the copy is corrupt — re-copy it.
Prefer MD5? Swap in md5 yourfile. Want SHA-1 instead of SHA-256? Use shasum -a 1. To check a folder of files against a saved list, you can write hashes to a file with shasum -a 256 * > hashes.txt and later confirm them with shasum -c hashes.txt.
This is genuinely useful and completely free. Its limit is scale: a single camera card can hold hundreds or thousands of files, and eyeballing hashes two at a time across that many clips, every shoot, is slow and error-prone. That's where a whole-card, automatic workflow is worth it.
The automatic way: verify a whole card with ASC-MHL
A purpose-built offload tool does the same checksum logic, but for every file at once and without you typing anything. The professional pattern:
- Hash on the way in. As each file copies from the card, its checksum is computed.
- Write a manifest. Every checksum is recorded in an ASC-MHL file — an open, auditable list of what was copied and its hashes, the same standard used on film sets and for Netflix-style deliveries.
- Read the destination back. The tool re-reads each copied file and recomputes its checksum.
- Confirm. Each destination hash is compared to the manifest. A green pass means the whole card is verified; any mismatch is flagged so you know before you format the card.
Several tools do this. DaVinci Resolve's Clone Tool is free and uses xxHash. MhlFileVerify is a free, verify-only utility. Paid DIT tools like OffShoot (the current name of Hedge, around $169, last verified June 2026) and Silverstack are excellent and well-proven. Copsy is the free option that also handles the copy, the cloud and the notification in one pass.
How Copsy verifies a card automatically
Copsy — a free Mac camera-offload app (macOS 13+) — runs the verify-everything workflow above end to end, free, with no signup and no card limit:
- Plug in the card. Copsy auto-detects it by content: Sony, ARRI, Blackmagic/BMD, RED, Canon, Nikon, Panasonic, Fujifilm, GoPro, drones, audio recorders, or any card it can read.
- Pick destinations. Copy to an external drive, and optionally to Google Drive or Dropbox in parallel in the same pass.
- Copy + hash + organize. Files copy while their checksums are computed, organized by date and source, with an ASC-MHL manifest written alongside.
- Verify automatically. Copsy re-reads the destination and confirms every file's ASC-MHL checksum, with no Terminal and no hand-comparing hashes.
- Get pinged. A Telegram message tells you it finished and verified, so you can walk away and only format the card once the copy is proven good.
Verification methods on Mac compared
| Method | Copsy | Terminal shasum | Finder drag |
|---|---|---|---|
| Checksum-verifies the copy | ✓ ASC-MHL, every file | ✓ if you run it | ✗ no verification |
| Scales to a whole card automatically | ✓ | manual, file by file | — |
| Writes an auditable manifest | ✓ ASC-MHL | only if you save a list | ✗ |
| Copies the card for you | ✓ | verify only | ✓ (unverified) |
| Drive + cloud (Drive/Dropbox) in parallel | ✓ | — | — |
| Notifies you when done | ✓ Telegram | — | — |
| Price | FREE | FREE | FREE |
Competitor pricing referenced in this guide was last verified June 2026 — check each vendor's site for current figures.
The bottom line
If you only need to spot-check one file, shasum -a 256 in Terminal is free and exact. If you're offloading a card every shoot, automate it: a tool that hashes during the copy and confirms against an ASC-MHL manifest gives you the same proof for hundreds of files without typing a single command. Whatever you do, don't trust a plain Finder drag for irreplaceable footage — it copies but never checks.
Frequently asked questions
shasum -a 256 on the source file and again on the copied file; if the two hashes match exactly, the copy is bit-for-bit identical. For a whole card of footage, use a tool like Copsy that checksums every file with ASC-MHL during the copy and confirms each one automatically.Verify every file without touching Terminal
Copsy — a free Mac camera-offload app. It copies your card to a drive and the cloud and ASC-MHL-verifies every file, so nothing is lost.
⬇ Download Copsy for Mac