それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Linuxで.lzh圧縮を扱う方法

ある図書館から研究用に所蔵図書データを頂いたのだが、これがLZH形式で圧縮されていて困った。Linuxのtar は対応していないんです。

lzh-archiverを使う。

インストール

sudo aptitude install lzh-archiver

解凍

lzh-archiver x SAMPLE.lzh

使用例

解凍
takuya@debian:~/NDL$ for n in *.lzh ; do lzh-archiver xe $n;done
bibli2009-1.txt       - Melted   :  ooooooooooooooooooooooooooooooooooooooooo
bibli2009-2.txt       - Melted   :  ooooooooooooooooooooooooooooooooooooooooo
bibli2008-2.txt       - Melted   :  ooooooooooooooooooooooooooooooooooooooooo
圧縮
takuya@debian00:~/test$ lzh-archiver c test.lzh packages.txt
packages.txt    - Frozen(0%)  o

ファイルの追加

takuya@debian00:~/test$ lzh-archiver a test.lzh masterd
masterd - Frozen(56%) oooo
takuya@debian00:~/test$

使い方まとめ

takuya@debian00:~/test$ lzh-archiver
jLHA                       Copyright(C) 2002  Michel Ishizuka
jlhafrontend               Copyright(C) 2006  Ying-Chun Liu
usage: JLHAFrontEnd [-]{axelvudmcpt[q[num]][vnfodizg012]}[w=<dir>] archive_file [file...]
commands:                               options:
 a   Add to archive                      q{num} quiet mode
 x,e Extract from archive                v  verbose
 l,v List / Verbose list                 n  not execute
 u   Update newer files to archive       f  force
 d   Delete from archive                 t  FILES are TEXT files
 m   Move to archive                     o[567] compression method (a/u)
 c   Create new archive                  w=<dir> specify working directory
 p   Print to STDOUT from archive        d  delete files after (a/u/c)
 t   Test archive                        i  ignore directory path (x/e)
                                         z  files not compress (a/u)
                                         e  TEXT code convert from/to EUC-JP
                                         y  filename multibyte convert
コマンドまとめ
commands* コマンド 英語 日本語
x,e Extract from archive 解凍:アーカイブを展開する
c Create new archive 新規作成:アーカイブの新規作成。
a Add to archive 追加:アーカイブにファイルを追加
u Update newer files to archive 書換アーカイブファイルを更新する。
d Delete from archive 削除:アーカイブの中から消す
m Move to archive 移動:アーカイブに移動する。
l,v List / Verbose list 一覧:アーカイブ内部のファイル一覧
p Print to STDOUT from archive アーカイブ内容をSTDOUTに取り出す。
t Test archive アーカイブのテスト

ファイル名のエンコードについて。

windowsの日本語ファイル名はCP932でLinuxUTF-8なのでファイル名を解決できると嬉しい。これはそのうち調べて追記します。

パッケージついての詳細。

takuya@debian:~/NDL$ sudo aptitude show  lzh-archiver
lzh-archiver は、現在のバージョンもインストール候補のバージョンも見つかりません
パッケージ: lzh-archiver
状態: 本当のパッケージではありません
提供元: jlha-utils

lzh-archiverと言う名前は、検索用のエイリアスのようですね。

パッケージの詳細2.

takuya@debian:~/NDL$ sudo aptitude show jlha-utils
パッケージ: jlha-utils
新規: yes
状態: インストール済み
自動的にインストールされた: no
バージョン: 0.1.5-1
優先度: 任意
セクション: utils
メンテナ: Ying-Chun Liu (PaulLiu) <grandpaul@gmail.com>
展開サイズ: 102k
依存: java-gcj-compat | java1-runtime | java2-runtime, libjlha-java
競合: lha
提供: lzh-archiver
説明: command-line lzh archiver written in Java
 lzh is an archiving format generated by lha utility. jlha-utils is a
 command-line program for compressing or decompressing lzh files. It has a
 compatible interface to the lha program.

 Note: Some of the functionality is missing currently, please read README.Debian
 for detailed information.

 Homepage: http://sourceforge.net/projects/jlhafrontend/

Javaで書かれた、lzhを扱うためのユーティリティソフトウェアパッケージだそうです。しっかしJavaを大量に引き連れてくる嬉しくないなぁ。