rcpy is a fast, Rust-based recursive copy tool that features a progress bar, multi-threaded performance, and optional --dry-run simulation mode.
Unlike traditional cp, rcpy is:
- Multi-threaded by default (with a single-thread fallback)
- Shows a progress bar
- Includes an optional dry-run mode to simulate operations
- Supports file exclusion by extension
- Prints summaries after copy completes
- Recursive and non-recursive modes
- Multi-threaded (default) or single-threaded
--dry-runsupport to simulate without writing files- Exclude files by extension with
--exclude - Show only files, only dirs, or both via output controls
- Summary of copied files/directories + duration
Assuming you have rust installed:
git clone https://github.com/vaeleborne/rcpy.git
cd rcpy
cargo build --releaseThen Move the binary:
cp target/release/rcpy ~/.local/bin/Or if on windows: Hit windows key, search environment variables, then in PATH browse to the directory.
rcpy <source> <destination> [OPTIONS]| Flag | Description |
|---|---|
-s, --single-thread |
Use a single-threaded copy strategy |
-v, --verbose |
Show both file and directory operations |
--only-files |
Only output file copy messages |
--only-dirs |
Only output directory creation messages |
-d, --dry-run |
Simulate copy without writing any files |
--exclude <EXT> |
Exclude files by extension (e.g. tmp) |
--no-recursive |
Copy only top-level files and folders |
Copy recursively (default):
rcpy ./project ./backupSimulate copy recursively without writing anything (Long and Short):
rcpy ./project ./backup --dry-run
rcpy ./project ./backup -dCopy only top-level items:
rcpy ./project ./backup --no-recursiveCopy using a single thread and exclude .psd and .tmp files:
rcpy ./assets ./output -s --exclude psd --exclude tmpOnly show copied files (not directories):
rcpy ./src ./dst --only-files--interactive mode (confirm each file)
--log output to a file
--threads N to control parallelism
--update and --skip-existing flags
Windows .exe installer and shell integration
.rcpyignore file support (like .gitignore)
MIT License © 2025 Dylan Hawke