3 个版本
0.1.2 | 2024年5月11日 |
---|---|
0.1.1 | 2024年3月26日 |
0.1.0 | 2024年3月26日 |
#4 in #copying
57KB
927 行
美化复制
美化复制(简称 pcp
)是一个用于复制的工具,旨在提供比标准 UNIX cp
工具更好的用户界面和更多功能。
安装
Cargo
您可以使用 cargo
安装 pretty-copy
crate,尽管在这种情况下,二进制文件将被命名为 pretty-copy
,而不是 pcp
,因此您需要手动更改名称
cargo install pretty-copy
cd /path/to/your/cargo/bin
mv pretty-copy pcp
基于 Arch
在 Arch 发行版上,您可以使用 AUR 辅助程序(例如,使用 yay
安装 pretty-copy
软件包)
yay -S pretty-copy
或克隆此存储库并使用 makepkg
git clone https://github.com/0x50f13/pcp
cd pcp/pkg
makepkg -si
其他
目前,在其他发行版上,您可以从 发行版 下载 x86_64 二进制文件,或者 自行构建
构建
要构建,您需要 Rust 和 Cargo。要构建,请克隆此存储库并使用 cargo
git clone https://github.com/0x50f13/pcp
cd pcp
cargo build --release
然后将生成的文件复制到您的 $PATH
中的任意目录
# Here /usr/bin is just an example
cp target/release/pcp /usr/bin
用法
用法: pcp [OPTIONS] <SRCS>... <DEST>
参数/选项 | 描述 |
---|---|
<SRCS>... |
源文件/目录 |
<DEST> |
目标文件/目录 |
-r, --递归 |
递归复制目录 |
--no-progress |
不显示进度 |
--fail-fast |
首次错误时失败 |
--max-chunks-number<MAX_CHUNKS_NUMBER> |
存储在内存中的文件缓存的最多块数 [默认值: 1024] |
-h, --帮助 |
打印帮助 |
功能
当前
- 带有进度的文件复制
- 复制目录
未来
- 通过 HTTP 和 HTTPS 协议复制文件
- 复制元数据(例如 SELinux 标签)
- 通过 SCP 复制文件/目录
- 通过 FTP 和 SFTP 复制文件/目录
- 在支持的情况下重新链接文件
- 直接写入 devfs,因此工具可以直接将文件烧录到驱动器
- 在复制目录之前计算目录大小
- Qt 或 GTK 进度窗口(或 Tcl,甚至可能是直接使用 GL 的渲染?)
- 支持可选插件
开发
文档
在线
待办事项
生成
使用 cargo doc
进行文档生成。
简要摘要
该程序目前具有3个动态组件,它们对应相应的特性
Reader
实现读取文件(及其元数据)Write
实现写入文件ProgressDisplay
实现向用户显示进度- 实际上还计划增加一个:
InstantCopyHelper
,它将帮助确定文件是否可以即时relink
一般的算法是我们有两个协程和它们之间的通道。一个协程读取文件,另一个协程写入。写入的协程还会更新进度,这是同步完成的(因此将来可能通过mpsc通道添加UI线程)
依赖项
~6–19MB
~197K SLoC