Skip to content

命令参考


copy

复制文件和目录。

bcmr copy [选项] <源路径>... <目标路径>
参数说明
-r, --recursive递归复制目录
-p, --preserve保留文件属性(权限、时间戳)
-f, --force覆盖已有文件
-y, --yes跳过覆盖确认提示
-v, --verbose显示详细操作信息
-e, --exclude <PATTERN>排除匹配正则的路径
-t, --tui使用纯文本进度显示
-n, --dry-run预览但不执行
-V, --verify复制后校验文件完整性 (BLAKE3)
-C, --resume断点续传(大小 + mtime 检查)
-s, --strict严格 BLAKE3 哈希校验续传
-a, --append追加模式(仅检查大小,忽略 mtime)
--sync复制后同步到磁盘 (fsync)
--reflink <MODE>写时复制:auto(默认)、forcedisable
--sparse <MODE>稀疏文件:auto(默认)、forcedisable
-P, --parallel <N>远程复制的并行传输数(默认:配置值)

示例:

bash
# 复制单个文件
bcmr copy document.txt backup/

# 复制多个文件(shell 通配符)
bcmr copy *.txt *.md backup/

# 递归复制目录
bcmr copy -r projects/ backup/

# 带属性保留的复制
bcmr copy -rp important_dir/ /backup/

# 强制覆盖且不提示
bcmr copy -fy source.txt destination.txt

# 排除模式(正则)
bcmr copy -r --exclude='\.git' --exclude='\.tmp$' src/ dest/

# 带校验的复制
bcmr copy --verify critical_data.db /backup/

# 断点续传
bcmr copy -C large_file.iso /backup/

# SSH 远程复制
bcmr copy local_file.txt user@host:/remote/path/

# 并行远程上传(4 worker)
bcmr copy -P 4 file1.bin file2.bin user@host:/remote/

续传模式

参数行为
-C(resume)比较 mtime — 匹配则从断点追加;不匹配则覆盖
-s(strict)比较 BLAKE3 部分哈希 — 匹配则追加;不匹配则覆盖
-a(append)目标较小则追加,大小相同则跳过,目标较大则覆盖

move

移动文件和目录。

bcmr move [选项] <源路径>... <目标路径>
参数说明
-r, --recursive递归移动目录
-p, --preserve保留文件属性
-f, --force覆盖已有文件
-y, --yes跳过覆盖确认提示
-v, --verbose显示详细操作信息
-e, --exclude <PATTERN>排除匹配正则的路径
-t, --tui使用纯文本进度显示
-n, --dry-run预览但不执行
-V, --verify移动后校验文件完整性
-C, --resume断点续传(仅跨设备回退时)
-s, --strict严格哈希校验续传
-a, --append跨设备移动的追加模式
--sync同步到磁盘(仅跨设备)

示例:

bash
# 移动单个文件
bcmr move old_file.txt new_location/

# 递归移动目录
bcmr move -r old_project/ new_location/

# 带排除的移动
bcmr move -r --exclude='^node_modules' --exclude='\.log$' project/ dest/

# 干运行
bcmr move -r -n old_project/ new_location/

TIP

同设备移动使用 rename(2) 系统调用,瞬间完成。跨设备移动自动回退到复制+删除,并带进度追踪。


remove

删除文件和目录。

bcmr remove [选项] <路径>...
参数说明
-r, --recursive递归删除目录
-f, --force强制删除,不确认
-y, --yes跳过确认提示
-i, --interactive逐个确认删除
-v, --verbose显示详细操作信息
-d, --dir仅删除空目录(类似 rmdir
-e, --exclude <PATTERN>排除匹配正则的路径
-t, --tui使用纯文本进度显示
-n, --dry-run预览但不执行

示例:

bash
# 删除单个文件
bcmr remove unnecessary.txt

# 删除多个文件(通配符)
bcmr remove *.log

# 递归删除目录
bcmr remove -r old_project/

# 交互式删除
bcmr remove -i file1.txt file2.txt file3.txt

# 带排除的删除
bcmr remove -r --exclude='\.important$' --exclude='\.backup$' trash/

# 干运行
bcmr remove -r -n potentially_important_folder/

init

生成 shell 集成脚本。详见 Shell 集成

bcmr init <SHELL> [选项]
参数说明
<SHELL>bashzshfish
--cmd <前缀>命令前缀(如 bbcpbmvbrm
--prefix <前缀>显式前缀(覆盖 --cmd
--suffix <后缀>命令后缀
--no-cmd不创建别名
--path <路径>添加目录到 PATH

示例:

bash
eval "$(bcmr init zsh --cmd b)"          # bcp, bmv, brm
eval "$(bcmr init bash --cmd '')"         # cp, mv, rm
eval "$(bcmr init zsh --cmd --prefix p --suffix +)"  # pcp+, pmv+, prm+

completions

生成 shell 补全脚本。设置方法详见 Shell 集成

bcmr completions <SHELL>

支持的 shell:bashzshfishpowershellelvish

示例:

bash
bcmr completions zsh > ~/.zfunc/_bcmr
bcmr completions bash > /etc/bash_completion.d/bcmr
bcmr completions fish > ~/.config/fish/completions/bcmr.fish
bcmr completions powershell >> $PROFILE

update

检查更新并从 GitHub Releases 自更新二进制文件。

bcmr update

下载当前平台的最新版本并原地替换二进制文件。

BCMR 也会在每次命令运行时在后台检查更新(可通过 配置 中的 update_check 控制)。

Released under the GPL-3.0 License.