Local copies
The everyday case: a folder, a file, or a glob pattern onto a USB drive, a second disk, or a network mount. fast-copy resolves the physical disk offset of every file first (FIEMAP on Linux, fcntl on macOS, FSCTL on Windows), then reads in block order — so a spinning disk never wastes time seeking, and thousands of small files stream as if they were one big one.
Duplicates are detected by content hash and written once, then hard-linked — on real-world trees a quarter to half of all files never need copying at all. Every file is verified against its source hash after the copy, and a persistent cache makes re-runs of the same tree near-instant.
Examples
Copy a folder to a USB drive
python fast_copy.py /home/kai/my-app /mnt/usb/my-appMultiple sources at once (v3.1.0+)
fast-copy /var/lib/longhorn/replicas/pvc-* /mnt/backup_pvc/Any number of source paths followed by the destination; each source is copied as its own subtree under the destination, preserving its basename. Add -R/--keep-parents to keep the full parent path of each source (rsync -R semantics).
Copy a single file
python fast_copy.py ~/Downloads/Rocky-10.0-x86_64-dvd1.iso /mnt/usb/Glob pattern
python fast_copy.py "~/Downloads/*.zip" /mnt/usb/zips/
Windows
python fast_copy.py "C:\Projects\my-app" "E:\Backup\my-app"
Long paths beyond 260 characters are handled automatically via the \\?\ prefix, and on ReFS volumes same-volume copies use real copy-on-write block clones.
Every flag used here is documented in the full options reference.