3 个版本
0.0.3 | 2023 年 10 月 12 日 |
---|---|
0.0.2 | 2023 年 9 月 3 日 |
0.0.1 | 2023 年 9 月 3 日 |
#1239 在 命令行工具
10KB
125 代码行
packy
创建解压缩归档文件的 CLI 工具(最常见的类型)。
它专注于简洁性,例如
- 自动检测归档类型。
- 适用于各种平台的便携式二进制文件。
- 无外部依赖(其他二进制文件或任何动态库)。
但为什么呢?
坦白说,启动此项目的首要原因是
- 使用
tar
时的挫败感。- GNU tar 和 BSD tar 之间的不兼容性。这意味着:Linux 和 macOS 上的
tar
在归档类型支持和 CLI 选项上有所不同。您的 shell 脚本在不同系统上随机失败,这不是很烦人吗? - 版本之间的不兼容性 - 例如,旧版本的
tar
无法自动检测归档类型。所以您编写了脚本,然后在某个古老的 Ubuntu 版本上失败。这不是很有趣吗? - 运行时依赖项 - 对特定归档类型的支持取决于动态库。
- GNU tar 和 BSD tar 之间的不兼容性。这意味着:Linux 和 macOS 上的
- 强烈希望用 Rust 重新编写一切。( ͡° ͜ʖ ͡°)
Packy 通过以下方式解决这些问题
- 跨平台,并提供在 Linux 和 macOS 上轻松开始的一行代码。
- 支持尽可能多的归档类型。100% 内置在 packy 中。
- 静态链接,无运行时依赖,无惊喜。
- 用 Rust 编写!!!111oneone
安装
预构建的二进制文件
从 发布页面 下载最新二进制文件。
cargo
cargo install packy
使用方法
packy [OPTIONS] <INPUT>
Arguments:
<INPUT> Path to the archive to packy
Options:
-o, --output <OUTPUT>
Directory to unpack the archive into [default: .]
-s, --strip-components <STRIP_COMPONENTS>
Strip the specified number of leading components from the archive [default: 0]
-v, --verbose
Verbose output
-h, --help
Print help
-V, --version
Print version
示例
# Unpack archive.tar.gz into the current directory.
packy archive.tar.gz
# Unpack archive.tar.xz into the directory /tmp/foo.
packy -o /tmp/foo archive.tar.xz
# Unpack archive.tar.bz2 into the directory /tmp/foo, stripping the first component.
packy -o /tmp/foo -s 1 archive.tar.gz
依赖项
~9–19MB
~260K SLoC