lha是Linux系统中用于处理LZH/LHA压缩格式的命令行工具。LZH格式在日本较为流行,特别是在早期的Windows和MS-DOS系统中。lha可以创建、查看和提取.lzh、.lha格式的压缩文件。
在大多数Linux发行版中,lha需要手动安装:
sudo apt update
sudo apt install lha
# RHEL/CentOS需要启用EPEL仓库
sudo yum install epel-release
sudo yum install lha
# 或使用dnf(Fedora/RHEL8+)
sudo dnf install lha
sudo pacman -S lha
# 下载源码
wget http://www2m.biglobe.ne.jp/~dolphin/lha/lha-1.14i.tar.gz
# 解压
tar xzf lha-1.14i.tar.gz
cd lha-1.14i
# 编译安装
./configure
make
sudo make install
lha [选项] 命令 [参数] 压缩文件 [文件...]
| 命令 | 说明 |
|---|---|
a |
添加文件到压缩包(如果压缩包不存在则创建) |
e |
从压缩包中提取文件(不保留路径) |
x |
从压缩包中提取文件(保留路径) |
l |
列出压缩包中的文件列表 |
t |
测试压缩包的完整性 |
d |
从压缩包中删除文件 |
u |
更新压缩包中的文件(只添加新文件或更新旧文件) |
v |
列出压缩包中的文件详细信息 |
p |
将压缩包中的文件内容输出到标准输出 |
| 选项 | 说明 |
|---|---|
-a |
归档模式,保留文件属性 |
-c |
创建新的压缩包 |
-d |
解压后删除压缩包 |
-f |
强制操作,不询问确认 |
-g |
使用gzip算法(某些版本支持) |
-h |
显示帮助信息 |
-q |
安静模式,不显示处理信息 |
-v |
详细模式,显示处理过程 |
-x |
允许提取文件名中的扩展属性 |
-z |
使用compress算法(某些版本支持) |
创建.lzh压缩包:
# 创建几个测试文件
echo "File 1 content" > file1.txt
echo "File 2 content" > file2.txt
mkdir docs
echo "Document content" > docs/doc1.txt
# 创建压缩包(添加文件)
lha a archive.lzh file1.txt file2.txt docs/
# 或使用-c选项创建新压缩包
lha -c archive2.lzh *.txt
列出压缩包中的文件:
# 简单列表
lha l archive.lzh
# 详细列表
lha v archive.lzh
从压缩包中提取文件:
# 提取所有文件(不保留路径)
lha e archive.lzh
# 提取所有文件(保留路径)
lha x archive.lzh
# 提取特定文件
lha e archive.lzh file1.txt
# 提取到指定目录
mkdir extracted
lha x archive.lzh -w extracted/
向现有压缩包中添加新文件或更新旧文件:
# 创建新文件
echo "New file content" > newfile.txt
# 更新压缩包
lha u archive.lzh newfile.txt
# 查看更新后的压缩包
lha l archive.lzh
从压缩包中删除指定文件:
# 删除文件
lha d archive.lzh file1.txt
# 查看删除后的结果
lha l archive.lzh
检查压缩包是否完整:
# 测试压缩包
lha t archive.lzh
# 如果有错误会显示错误信息
不解压直接查看文件内容:
# 显示文件内容
lha p archive.lzh file1.txt
# 通过管道传递给其他命令
lha p archive.lzh file1.txt | grep "content"
# 批量解压当前目录下所有.lzh文件
for file in *.lzh; do
echo "Extracting $file..."
lha x "$file"
done
某些版本的lha支持分卷压缩:
# 创建分卷压缩(每卷1MB)
lha a -s1024k archive.lzh largefile.iso
# 使用最大压缩
lha a -m5 archive.lzh file.txt
# 使用快速压缩
lha a -m1 archive.lzh file.txt
-f选项强制解压,或使用其他工具如unar。
LZH格式的兼容性:
| 系统/工具 | 支持情况 | 备注 |
|---|---|---|
| Windows (早期版本) | 原生支持 | Windows 3.x/95/98时期常用 |
| Windows (现代版本) | 需要第三方软件 | 如7-Zip、WinRAR |
| macOS | 需要第三方工具 | 如The Unarchiver |
| Linux | 需要安装lha | 或使用unar等替代工具 |
| 其他工具 | 7-Zip、WinRAR | 广泛支持.lzh格式 |
如果不想使用lha,可以考虑以下替代工具: