極稀にあまり使わない形式のアーカイブファイルを扱うことがあり前々からストレスを感じていました 😤
面倒なのは形式ごとに別々のパッケージをインストールしなければいけないことです。新しいサーバをセットアップするたびに「あれ、7zが扱えない」「rarファイルが展開できない」なんてことになって、その度にパッケージを探してインストールする羽目になります 🔧
さらに、困るのは、アーカイブ形式ごとにコマンド名が全然違うこと。zipならunzip、tarならtar、rarならunrar...。しかも、それぞれオプションスイッチも微妙に違っていて、毎回manページを確認するのが面倒😫
毎回、7zやrar形式のファイルを扱いたい時が一番困ります。これらの形式はそこそこ使われていますが、デフォルトでは対応していない… 😅
そんな悩みを解決してくれるツールはないかと探していたところ、atoolというものを見つけました!初めて使用するツールなので、メモとしてまとめおきます 。
1. atoolとは
atoolは、さまざまな形式のアーカイブファイルを統一的に操作できるコマンドラインツールです。
先ほども書いていますが、通常アーカイブファイルの操作は形式ごとに異なるコマンドを使う必要があります(zipにはunzip、tarにはtar、rarにはunrarなど)。atoolはこの煩雑さを解消し、どの形式のアーカイブでも同じコマンド体系で扱える点が良いところです。
このatoolは実はPerlで書かれたスクリプト集として実装されており、背後で適切なアーカイブツールを呼び出すラッパーとして動作します。これにより、ユーザーはファイル形式を意識することなく、直感的にアーカイブ操作を行えるようになります。
2. インストール方法
Ubuntuでのatoolのインストールは非常に簡単です。パッケージマネージャーを使用して以下のコマンドを実行します。
$ sudo apt update $ sudo apt install atool
インストールすると、atoolの各コマンド(unpack、apack、als等)が使用可能になります。

3. atoolの特徴とメリット
atoolの最大の特徴は、統一されたコマンド体系であり、それによる学習コストが大幅に削減できます。
対応するアーカイブ形式
| 形式 | 拡張子 |
|---|---|
| ZIP形式 | .zip |
| TAR系 | .tar, .tar.gz, .tar.bz2, .tar.xz |
| RAR形式 | .rar |
| 7-Zip形式 | .7z |
| Debian パッケージ | .deb |
| その他 | 多数の形式に対応(.lha、.rpm、.jar etc) |
これで悩みだった、ファイル拡張子を確認してコマンドを使い分ける手間がなくなり、効率がアップします。
4. 主要コマンドの紹介
atoolは以下の6つの主要コマンドで構成されていて、これらだけでアーカイブ操作がカバーできます。
| コマンド | 機能 | 用途 |
|---|---|---|
aunpack |
アーカイブの展開 | ファイルやディレクトリの取り出し |
apack |
アーカイブの作成 | ファイルやディレクトリの圧縮 |
als |
アーカイブの内容表示 | 中身の確認(展開せずに) |
acat |
アーカイブ内ファイルの表示 | 特定ファイルの内容確認 |
adiff |
アーカイブの比較 | 2つのアーカイブの差分確認 |
arepack |
アーカイブ形式の変換 | 異なる形式への変換 |
コマンドの頭文字にaがつく形式で統一されており、比較的簡単に覚えられそうです。
4.1 コマンド使用例
アーカイブの展開(aunpack)
$ aunpack archive.zip # zipファイルの展開 $ aunpack data.tar.gz # tar.gzファイルの展開 $ aunpack software.7z # 7zファイルの展開 $ aunpack document.rar # rarファイルの展開
アーカイブの作成(apack)
$ apack backup.zip folder/ # フォルダをzipで圧縮 $ apack data.tar.gz *.txt # txtファイルをtar.gzで圧縮 $ apack project.7z src/ # srcディレクトリを7zで圧縮
アーカイブの内容表示(als)
$ als archive.zip # zipファイルの中身一覧 $ als data.tar.gz # tar.gzファイルの中身一覧 $ als -l software.rar # 詳細情報付きで表示
アーカイブ内ファイルの表示(acat)
$ bashacat archive.zip readme.txt # zip内のreadme.txtを表示 $ acat data.tar.gz config.conf # tar.gz内のconfig.confを表示
アーカイブの比較(adiff)
$ adiff old.zip new.zip # 2つのzipファイルを比較 $ adiff backup1.tar backup2.tar # 2つのtarファイルを比較
アーカイブ形式の変換(arepack)
$ basharepack data.zip data.tar.gz # zipからtar.gzに変換 $ arepack old.rar new.7z # rarから7zに変換
5. 使用場面
atoolは複数の形式を統一的に扱える点で便利です。
日常的な活用場面:
- ダウンロードしたアーカイブファイルの中身確認(als)
- 様々な形式のファイルの展開作業(aunpack)
- バックアップファイルの作成(apack)
- アーカイブ形式の変換作業(arepack)
- スクリプトでの汎用的なアーカイブ処理
シェルスクリプトでアーカイブ操作を自動化したい場合などでもatoolの便利さを感じられそうです。
おわりに
実際にatoolを使ってみて、アーカイブファイルの操作がかなり楽になりました😊 特に、形式を気にせずに同じコマンドで操作できるのは非常に便利です。
世の中にはもっと高機能で便利なアーカイブツールもありそうですが、とりあえず今の悩みは解決できたので満足しています👍