| Crates.io | bcmr |
| lib.rs | bcmr |
| version | 0.2.8 |
| created_at | 2025-01-07 21:20:46.789521+00 |
| updated_at | 2025-07-27 09:17:54.982034+00 |
| description | Better Copy Move Remove (BCMR) - A modern CLI tool for file operations with progress bar and advanced features |
| homepage | |
| repository | https://github.com/Bengerthelorf/bcmr |
| max_upload_size | |
| id | 1507709 |
| size | 622,363 |
Making file operations simpler and more modern! BCMR is a command-line tool written in Rust that lets you elegantly copy, move, and remove files.

cargo install bcmr
git clone https://github.com/Bengerthelorf/bcmr
cd bcmr
cargo build --release
The compiled binary will be available at target/release/bcmr.
BCMR provides flexible shell integration similar to zoxide. You can customize command names with prefixes or replace native commands.
Basic syntax:
bcmr init [shell] [options]
Available options:
--cmd <prefix>: Set command prefix (e.g., 'b' creates bcp, bmv, brm)--no-cmd: Don't create command aliases--uninstall: Remove previously installed commandsExamples:
# Add to your ~/.bashrc or ~/.zshrc:
# Use custom prefix (creates testcp, testmv, testrm)
eval "$(bcmr init zsh --cmd test)"
# Replace native commands (creates cp, mv, rm)
eval "$(bcmr init zsh --cmd '')"
# Use 'b' prefix (creates bcp, bmv, brm)
eval "$(bcmr init bash --cmd b)"
# Uninstall commands (remove previously added commands)
eval "$(bcmr init zsh --cmd test --uninstall)"
Supported shells:
Basic syntax:
bcmr copy [options] <source> <destination>
Available options:
-r, --recursive: Copy directories recursively--preserve: Preserve file attributes (timestamps, permissions)-f, --force: Force overwrite existing files-y, --yes: Skip confirmation when using force--exclude=<pattern>: Exclude files matching pattern (comma-separated)--fancy-progress: Use fancy TUI progress display (default is plain text)Examples:
# Copy a single file
bcmr copy document.txt backup/
# Recursively copy a directory
bcmr copy -r projects/ backup/
# Copy with attribute preservation
bcmr copy --preserve important.conf /etc/
# Force overwrite without prompting
bcmr copy -f -y source.txt destination.txt
# Copy with exclusions
bcmr copy -r --exclude=.git,*.tmp src/ dest/
# Copy with fancy progress display
bcmr copy -r --fancy-progress large_folder/ backup/
Basic syntax:
bcmr move [options] <source> <destination>
Available options:
-r, --recursive: Move directories recursively--preserve: Preserve file attributes-f, --force: Force overwrite existing files-y, --yes: Skip overwrite confirmation--exclude=<pattern>: Exclude matching files--fancy-progress: Use fancy TUI progress display (default is plain text)Examples:
# Move a single file
bcmr move old_file.txt new_location/
# Recursively move a directory
bcmr move -r old_project/ new_location/
# Force move with attribute preservation
bcmr move -f --preserve config.json /etc/
# Move with exclusions
bcmr move -r --exclude=node_modules,*.log project/ new_place/
# Move with fancy progress display
bcmr move -r --fancy-progress large_folder/ new_location/
Basic syntax:
bcmr remove [options] <path1> [path2 ...]
Available options:
-r, --recursive: Recursively remove directories-f, --force: Force removal without confirmation-i, --interactive: Prompt before each removal-v, --verbose: Show detailed removal process-d: Remove empty directories--exclude=<pattern>: Exclude matching files--fancy-progress: Use fancy TUI progress display (default is plain text)Examples:
# Remove a single file
bcmr remove unnecessary.txt
# Recursively remove a directory
bcmr remove -r old_project/
# Interactive removal of multiple files
bcmr remove -i file1.txt file2.txt file3.txt
# Remove empty directory
bcmr remove -d empty_directory/
# Force recursive removal with verbose output
bcmr remove -rf -v outdated_folder/
# Remove with exclusions
bcmr remove -r --exclude=*.important,*.backup trash/
# Remove with fancy progress display
bcmr remove -r --fancy-progress large_folder/
BCMR offers two progress display modes:
Use --fancy-progress flag to enable the fancy TUI mode for a more visually appealing experience.
Issues and PRs are welcome! Whether it's bug reports or feature suggestions, we appreciate all contributions.
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)If you find a bug or have any suggestions, please submit them to the GitHub Issues page. When reporting, please include:
GPL-3.0 © Zane Leong