fast-copy vs cp
cp reads files in the order the directory lists them. On an SSD nobody notices; on a rotational disk with thousands of small files, that order is effectively random seeks. fast-copy asks the filesystem for each file's physical location first (FIEMAP), sorts the reads by disk offset, and bundles small files into streams — the head sweeps the platter once instead of jumping around it.
The measured difference
12,347 files, 110.9 MB (9 KB average), rotational XFS source to SSD destination, page cache dropped before every run, timing includes sync -f (durable copy). Best of three interleaved rounds:
| Tool | Time | Throughput |
|---|---|---|
| fast-copy (dedup ON) | 5.93 s | 2.5× faster than cp |
| fast-copy (dedup off — same bytes as cp) | 8.19 s | 13.5 MB/s · 1,507 files/s |
| cp -ar | 14.99 s | 7.4 MB/s · 824 files/s |
Full methodology and every command here.
Feature differences that matter
| fast-copy | cp | |
|---|---|---|
| Read order on disk | physical-offset sorted | directory order |
| Post-copy verification | on by default | none |
| Content dedup across the tree | yes → hard links, cached across runs | no |
| Reflink / CoW clones | automatic where supported | --reflink=auto (opt-in) |
| Sparse files | SEEK_DATA extent walking | heuristic detection |
| Pre-flight space check | yes, allocated-size aware | fails mid-copy instead |
| Progress / ETA | live, per-phase | none |
| Installed everywhere already | no | yes |
When cp is all you need
Honest answer: most single-file and small-folder copies, especially SSD-to-SSD — cp is instant, always there, and on modern coreutils cp --reflink=auto even gets you CoW clones on btrfs/XFS. Reach for fast-copy when the job is big enough to have a progress bar, spins a disk, contains duplicates or sparse files, or when “it finished” needs to mean “verified, not hoped”.
Download fast-copy · Everyday examples: the local copies guide
Also compared: fast-copy vs rsync · fast-copy vs scp / SFTP · fast-copy vs Robocopy · fast-copy vs FastCopy · fast-copy vs TeraCopy · full benchmark methodology