bcmr · 更好的 cp / mv / rm 本地與 ssh · 同一條指令 v0.6.3 · 2026.05.13
複製. 移動. 刪除.
bcmr 是 cp / mv / scp 的現代替代品。每次寫入串流式 blake3 校驗,崩潰後可續傳,本地路徑和 ssh 路徑在同一條指令裡 —— 一個指令,兩端都校驗過。
每個位元組寫入時都在兩端雜湊,--verify 升級為完整的兩遍重讀。
砍行程、拔網線,再執行同一條指令,從上一個已校驗的區塊繼續。
bcmr copy a.txt user@host:/b/ 和 bcmr copy a.txt /b/ 是同一個動詞。相同的參數,相同的保證。
linux 上使用 copy_file_range,apfs 上使用 clone_file,稀疏檔案偵測,≥ 16 mib 的內容定址去重。
§ 02 · 同一條指令
本地 ssh,
同一條指令。
cp 和 scp 把本地與遠端當成兩個世界。bcmr 只當它們是兩種路徑。bcmr copy 在 3 mb 的本地拷貝和 300 gb 的跨機房傳輸裡是同一條指令。
這些是承諾,不是描述。如果你發現任何一條被違反了,那就是我們想聽到的 bug。
01
blake3 無處不在
每個區塊都在兩端被雜湊。只有校驗通過的傳輸,bcmr 才會告訴你成功了。
02
崩潰 · 續傳
砍行程、拔線、掉 ssh 連線。再執行同一條指令,bcmr 從上一個已校驗的位元組繼續。
03
本地 + ssh
一個動詞,兩個宇宙。本地路徑像 cp,遠端路徑像 scp。你不必再想「該用哪一個」。
04
reflink · 稀疏
apfs / btrfs / xfs / zfs 上使用 clone_file / reflink / copy_file_range。100 gb 的拷貝在支援的檔案系統上只要毫秒。
05
lz4 · zstd · dedup
可選的線路壓縮 lz4 / zstd。內容定址去重避免傳送你已經有過的位元組。
06
json + tui
腳本裡用 --json,終端裡用 --tui。同一個二進位檔、同一套指令 —— 只是外殼不同。
§ 04 · 開始
一個動詞。
已校驗。
可續傳。
mit 授權 · 無遙測 · 自 2024 年開源