圧縮ファイルの解凍に圧倒的に便利な「unar」コマンド

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

この間、腕時計のベルトをAmazonで注文したら、どでかいダンボールに入って納品されてきました。
 

腕時計のベルトって、10センチぐらいの箱に入った商品なんだけど、それを大きなダンボールでこれでもかというぐらいに梱包されていて、「過剰梱包」という言葉が頭をよぎりましたが、商品の発送者も、中身が壊れてはいけないと必死なんだという事も理解できました。
 

こんな時、パソコンのデータって、圧縮っていう技術があり、実際の商品にもこうした圧縮技術があれば、もっと便利になるな〜と考え、ドラえもんのスモールライトを思い出していました。
 

そんな夢の話は置いといて、最近WEBサービスを構築している時に、圧縮ファイルを扱う場面が出てきました。
 

ユーザーが好き放題に圧縮ファイルをアップロードしていて、それを解凍して中身を確認するという機能を持たなくてはいけなくて、機能設計での悩みとその解決方法をブログにします。

多数の圧縮ファイル

メジャーな圧縮タイプとして「zip」「rar」がありますが、サーバーサイドでよく利用される「tar」「gz」「tgz」などもストレージ内に混在していると思います。
 

また、最近では、「7z」が圧縮率が高いとしてダウンローダサイトで、流行っている傾向もあり、他にも色々なアーカイブファイルフォーマットが存在することを考えると、サーバー側で一括で対応するのが非常に困難だと考えられます。
 

zipファイルには「unzip」、rarファイルには「unrar」、tgzファイルには、「tar」というモジュールをそれぞれ使う事で解決はできそうですが、正直サービス設計をする際に煩雑になりがちなのが懸念されます。
 

WEBで検索していると「unar」というモジュールを見つける事ができました。
 

この「unar」というモジュールは色々なフォーマットの圧縮データをこのコマンドだけで解凍処理してくれる為、非常に便利に使えるのではないかという希望を込めて色々と検証してみました。

「unar」コマンド

とても便利そうに思えるunarモジュールですが、サーバーにこのモジュールをインストールすると「lsar」という圧縮データの中身を閲覧できるモジュールも同時にインストールされます。
 

ただし、unarは、圧縮ファイルを作り出すことはできないので、解凍のみのモジュールです。
 

インストール

 

Windows用モジュールは無さそうですね。

解凍できるフォーマット一覧

zip, RAR, 7z, tar, gzip, bzip2, LZMA, XZ, CAB, MSI, NSIS, EXE, ISO, BIN, Stuffit X, DiskDouble, Compact Pro, Packit, cpio, compress (.Z), ARJ, ARC, PAK, ACE, ZOO, LZH, ADF, DMS, LZX, PowerPacker, LBR, Squeeze, Crunch, swf, deb, rpm

 

使い方サンプル

普通に解凍

フォルダを指定して解凍

アーカイブファイル名でフォルダを作成してその中に解凍

パスワードを指定して解凍

アーカイブデータの内容を表示

SWFファイルの内部メディア・コンテンツを取り出す

注意点

アーカイブデータが日本語文字列を含んでいたり、圧縮データ内に日本語ファイルが存在している場合は、unarをインストールするOSのlocaleが日本語対応していないといけません。
 

マルチバイトでお困りの人は、以前書いた記事を参考にしてみてください。
 

UbuntuのCUIで日本語ファイルを使う方法

コマンドHELP

以下参考までに乗せておきます。
 

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です