Linux lha 命令详解


一、命令简介

lha 是 Linux 中用于处理 .lzh(LHA 格式)压缩文件的命令行工具。LHA 是一种源自日本的老牌压缩格式,广泛用于早期 DOS、Windows、Amiga 和日本 PC-98 系统,在 Linux 中不常见,但仍可用于解压旧档案或跨平台兼容。

该命令支持 .lzh 压缩文件的**压缩(archive)、解压(extract)、列出内容(list)**等操作,虽然其压缩率和速度不及现代算法(如 gzipxz),但在复古软件或某些嵌入式环境中仍有用途。

📦 .lzh 文件类似 .zip,但格式完全不同。


二、命令语法
lha [选项] 压缩文件 [目标文件或目录]

例如:

lha e archive.lzh

三、常用选项(命令子模式)
模式 作用说明
a 添加文件到 .lzh 压缩档(Archive)
e 解压文件(Extract)到当前目录
x 解压并保留原目录结构
l 列出 .lzh 压缩档内容
v 列出详细内容(Verbose list)
d 删除压缩档内文件
u 更新 .lzh 中的文件
q 快速添加文件到 .lzh
r 替换 .lzh 中的文件

lha 的选项模式类似 tar,以单个字母表示操作方式。


四、使用示例详解
1. 解压 .lzh 文件到当前目录
lha e file.lzh
  • 会将压缩包中文件提取到当前目录(不保留子目录结构)。


2. 解压并保留原始目录结构
lha x file.lzh
  • 如果 .lzh 中有子目录结构,则完整还原。


3. 查看 .lzh 文件内容
lha l file.lzh

示例输出:

  Length   Date     Time   Name
  -------  -------- -----  ------
     2048  2020/01/01 12:00  readme.txt
     4096  2020/01/01 12:00  docs/manual.txt

4. 详细列出文件信息
lha v file.lzh

l 提供更多文件权限、时间戳等信息。


5. 创建 .lzh 压缩文件
lha a newarchive.lzh file1.txt file2.txt

将多个文件压缩为 .lzh 格式的归档文件。


6. 添加新文件到已有 .lzh
lha r archive.lzh update.txt

如同更新操作,如果已有同名文件则替换。


7. 删除 .lzh 中的某个文件
lha d archive.lzh unwanted.txt

五、安装方式

在多数 Linux 发行版中默认未安装 lha,需要手动安装:

Debian/Ubuntu:

sudo apt install lha

RHEL/CentOS(需要 EPEL 源):

sudo yum install lha

Arch Linux:

sudo pacman -S lha

六、LHA 格式简介
项目 说明
扩展名 .lzh.lha
算法 LHARC(Lempel–Ziv + Huffman)
压缩率 中等偏低
主要用途 老旧游戏资源包、日本软件发行包
支持平台 DOS, Windows, Linux, Amiga, PC-98 等

许多日本老软件、字库、模拟器 ROM 等资料仍使用 .lzh


七、与其他压缩工具对比
工具 支持压缩 支持解压 主流支持度 特点
lha 较低 兼容 .lzh 旧格式
gzip ✅✅✅ 主流标准,速度快
bzip2 ✅✅ 高压缩比
xz ✅✅ 极高压缩比,较慢
zip / unzip ✅✅✅ 多平台通用
tar ✅✅✅ 打包工具,常与其他压缩结合

八、适用场景
场景 示例
解压旧 .lzh 安装包 日本 retro 软件资源
模拟器 BIOS 文件提取 PC-98、X68000 等平台
处理 DOS 年代备份数据 老旧备份归档解析
开发跨平台 LZH 解包功能 嵌入式设备软件维护

九、常见问题与解决方案

1. 解压失败,乱码?

  • 可能是 .lzh 文件名使用 Shift-JIS 编码(尤其是日文环境)。

  • 解决方法:尝试设置终端编码或配合 convmv 转换。

2. 无法创建 .lzh

  • 某些 lha 版本默认不支持压缩,仅解压功能。

  • 建议检查版本或使用兼容的旧版本(如 Ishimaru's LHa)。

3. 文件结构丢失?

  • 使用 e 提取不会保留目录结构,改用 x 模式。


十、总结
项目 内容
命令 lha
格式支持 .lzh(LHA 格式)压缩包
常用操作 解压(e/x)、查看(l/v)、压缩(a
安装需求 手动安装(不常默认提供)
应用场景 解压老软件、复古游戏资源、兼容日本压缩格式
替代方案 现代系统建议优先使用 zip, tar.gz, xz

lha 是 Linux 上少数能处理 .lzh 格式的工具之一,在维护老旧资源、处理日本软件和模拟器数据时依然不可或缺。虽然在现代系统中应用不多,但其存在帮助我们兼容过去,桥接历史与现在。

这里是封面:

 

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐