用法

四个命令 — 其他都是选项。

看归档内容:lha l archive.lzh

最常用的操作。列出归档内每个成员的大小、压缩率、时间戳:

$ lha l README.lzh
PERM  UID  GID    SIZE  RATIO     STAMP           NAME
[generic]                  1234  60.0%  Jul 14 20:30  README.md
[generic]                  5678  72.5%  Jul 14 20:30  src/main.c
---------- -------------------- ------- ----------
                      2 files,    6912 bytes (62.5%)

v 出详情(路径权限 + CRC):

$ lha lv README.lzh

两个 v 是超详细(每块信息):

$ lha lvv README.lzh

解压:lha x archive.lzh

默认解压模式。文件按归档里的相对路径写到当前目录:

$ lha x archive.lzh

常用选项:

glob 过滤:

$ lha x archive.lzh "*.c"        # 只解 *.c
$ lha x archive.lzh src/*        # 只解 src/ 下

CRC 校验:lha t archive.lzh

遍历整个归档,重算每个成员的 CRC16,和归档头里写的对一遍。退出码 0 = 全过;非 0 = 有成员 CRC 不对(归档坏了或者没下完)。

$ lha t README.lzh
test README.lzh            : OK

在 CI 里这个很管用——从上游 mirror 拉完 .lzh 之后 lha t 一下再解。

打印到标准输出:lha p archive.lzh file

把归档里单个成员输出到 stdout(已解压)。等价 tar -xOf archive.lzh file

$ lha p README.lzh src/main.c | head -5
/* main.c — entry point */

不加成员过滤则按顺序打印全部成员,方便管道:

$ lha p archive.lzh | grep TODO

lhasa 不做什么

读(2026 年的 99% 用例)用 lhasa 就够了。