跳到正文
发现
命令行工具效率工具

ouch:终端压缩解压工具

用一条命令完成各种格式的压缩、解压与列表查看,给经常在终端里处理压缩包的用户使用。

admin
发布于 2026-10-28
浏览
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 许可证限制,只支持解压和列表查看;如果不想包含非自由代码,可以在构建时关闭 unrar feature。

同时支持格式别名,例如 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 中;交叉编译目标会继承 cross Docker 镜像的工具链,因此只在同一 cross 镜像版本下才能做到逐位一致。
  • 项目文档说明其重点在于使用体验与错误提示,性能优化计划在后续进行。

本作品整理自 GitHub 开源项目 ouch-org/ouch,原作者 @ouch-org。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v0.8.3当前版本

    基于 0.8.2 的修复版本,修复了从源码构建的包在运行 --version 时因 GitHub 相关问题而失败的情况。

评论