ouch:终端压缩解压工具
用一条命令完成各种格式的压缩、解压与列表查看,给经常在终端里处理压缩包的用户使用。
- 浏览
- 4
- 访问
- 0
- 下载
- 0
- 版本
- v0.8.3
- 平台
- Windows、macOS、Linux
详细介绍
项目简介
ouch 是 Obvious Unified Compression Helper 的缩写,是一个用 Rust 编写的命令行工具,用于压缩、解压和查看各种压缩格式。它的设计目标是简单易用、速度快、错误提示清晰,并且没有运行时依赖。
ouch 会自动根据文件扩展名判断格式,因此你不需要记住每种格式对应的解压命令。
主要功能
- 简单易用,自动识别压缩格式
- 速度快,部分格式支持并行压缩
- 清晰的错误信息反馈
- 没有运行时依赖
- 提供无障碍模式(Accessibility mode)
- 提供 Shell 补全和 man 手册
- 支持从标准输入解压
安装与使用
安装
Arch Linux:
pacman -S ouch
macOS(Homebrew):
brew install ouch
Windows(Scoop):
scoop install ouch
从 crates.io 安装(Ubuntu 上可能需要先安装 clang):
cargo install ouch
Debian 可通过 pkg.haus 的 APT 源安装:
sudo apt install ouch
也可以从 releases 页面 下载最新发布包。
使用
ouch 有三个主要子命令:
ouch decompress(别名d)ouch compress(别名c)ouch list(别名l或ls)
查看某个命令的帮助:
ouch help <COMMAND>
ouch <COMMAND> --help # 等价写法
解压时,ouch 会自动识别扩展名:
ouch decompress a.zip
# 一次解压多个文件
ouch decompress a.zip b.tar.gz c.tar
用 -d/--dir 把解压结果输出到指定目录:
# 把 summer_vacation.zip 解压到 pictures 文件夹
ouch decompress summer_vacation.zip --dir pictures
也可以从标准输入解压,此时用 - 作为输入路径,并通过 -f/--format 指定格式:
cat a.tar.gz | ouch decompress - --format tar.gz
压缩时,先列出输入文件,最后写输出文件;ouch 根据输出文件的扩展名决定使用的格式:
# 把两个文件压缩成 archive.zip
ouch compress one.txt two.txt archive.zip
# 使用 .lz4 和 .zst 压缩 file.txt
ouch compress file.txt file.txt.lz4.zst
查看压缩包内容:
ouch list archive.zip
# 以树状结构显示
ouch list source-code.zip --tree
# 显示每个文件(未压缩)的大小
ouch list archive.zip --show-size
支持的格式
支持 .tar、.zip、.7z、.gz、.sz、.zst、.xz、.lzma、.lz、.bz/.bz2、.bz3、.lz4、.rar、.br。
.zip和.7z受格式本身限制,无法以流式方式压缩或解压。.gz、.sz、.zst的压缩会并行执行。.rar因 RAR 许可证限制,只支持解压和列表查看;如果不想包含非自由代码,可以在构建时关闭unrarfeature。
同时支持格式别名,例如 tar 的 tgz、tbz、txz、cbt 等,zip 的 cbz、epub,7z 的 cb7,rar 的 cbr。格式还可以链式叠加,如 .tar.gz、.tar.gz.xz.zst.gz.lz4.sz。
如果文件名没有扩展名,ouch 会尝试通过文件签名推断格式,并向用户确认。
注意事项
.rar仅支持解压和列表查看,不支持压缩。- 发布二进制使用 Sigstore 的
cosign签名,可在 releases 页面下载资源及其.sigstore.json后进行校验:
cosign verify-blob ouch-x86_64-unknown-linux-musl.tar.gz --bundle ouch-x86_64-unknown-linux-musl.tar.gz.sigstore.json --certificate-identity-regexp='^https://github.com/ouch-org/ouch/' --certificate-oidc-issuer=https://token.actions.githubusercontent.com
- 发布构建是可复现的:检出对应 tag 后设置
SOURCE_DATE_EPOCH与RUSTFLAGS,再执行cargo build --locked --release --target <triple>即可重建。工具链版本固定在rust-toolchain.toml中;交叉编译目标会继承crossDocker 镜像的工具链,因此只在同一cross镜像版本下才能做到逐位一致。 - 项目文档说明其重点在于使用体验与错误提示,性能优化计划在后续进行。
本作品整理自 GitHub 开源项目 ouch-org/ouch,原作者 @ouch-org。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v0.8.3当前版本
基于 0.8.2 的修复版本,修复了从源码构建的包在运行 --version 时因 GitHub 相关问题而失败的情况。
评论