7zip形式の場合、何も指定しなければ7zツールを使って圧縮する。しかし、ディストリビューションにp7zipパッケージが含まれているので7zの代わりに7zaをデフォルトにしたいということもあろう。その場合は、構成ファイルに次のように記述する。atoolの構成ファイルは簡単なもので、キーワードと値の対で記述する。/etc/atool.confはすべてのユーザーに、~/.atoolrcはそのユーザーに適用される。
# cat /etc/atool.conf
path_7z 7za
acatを使うと、アーカイブ中のファイルを見ることができる。このコマンドラインも簡単だ。圧縮ファイルの復元ツールや展開ツールのスイッチが何だったかを思い出す必要はない。atoolは選択したファイルをstdoutに書き出す(デフォルト)。その際、展開に関するメッセージが不要な場合は、下の2番目の例に示したように、コマンドライン・オプション-qを指定する。残念な点を1つ。7zip用のツールは直接コンソールに出力できないため、ページャーを介す必要がある。デフォルトではコマンドpagerが使われるが、これはPAGER環境変数で変更可能だ。
$ acat testdir.tar.bz2 testdir/df1.txt
testdir/df1.txt
Thu Jan 17 18:11:04 EST 2008
$ acat -q testdir.tar.bz2 testdir/df1.txt
Thu Jan 17 18:11:04 EST 2008
$ export PAGER=less
$ acat -q -p testdir.cpio.7z testdir/df1.txt
7-Zip (A) 4.51 beta Copyright (c) 1999-2007 Igor Pavlov 2007-07-25
p7zip Version 4.51 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)
Processing archive: testdir.cpio.7z
Extracting testdir/df1.txt
Everything is Ok
Thu Jan 17 18:11:04 EST 2008
$ acat -p testdir.cpio.7z testdir/df1.txt 2>/dev/null
Thu Jan 17 18:11:04 EST 2008
次に、アーカイブを展開する例を見てみよう。これは、atoolの十八番だ。すでに述べたように、atoolを使う限り、アーカイブがファイルをサブディレクトリーの中に展開してくれるかどうかをいちいち確認する必要がない。次に示すのは、先の例で作成したcpioファイルを展開する例だ。この場合、ファイルは元々サブディレクトリーの中にあるため、取り立ててatoolのありがたみはない。そこで、アーカイブのルート・ディレクトリーにファイルを2つ含むjarアーカイブを作り、これをaunpackを使って展開した。これが、下の2番目の例だ。2つのファイルは、確かにサブディレクトリーの中に置かれている。
$ cd /tmp/atest
$ mkdir extraction
$ cd extraction
$ aunpack ../testdir.cpio.7z
...
Processing archive: ../testdir.cpio.7z
Extracting testdir/df1.txt
Extracting testdir/df2.txt
Extracting testdir/subdir1/subfileb.txt
Extracting testdir/subdir1
Extracting testdir
Everything is Ok
testdir.cpio.7z: extracted to `testdir'
[ben@alkid extraction]$ ls -lh
total 8.0K
drwxrwxr-x 3 ben ben 4.0K Thu.17.Jan 18:01 testdir/
$ cat ./testdir/df2.txt
Thu Jan 17 18:11:06 EST 2008
$ cd /tmp/atest/testdir
[ben@alkid testdir]$ ls -l
total 24
-rw-rw-r-- 1 ben ben 29 2008-01-17 18:11 df1.txt
-rw-rw-r-- 1 ben ben 29 2008-01-17 18:11 df2.txt
drwxrwxr-x 2 ben ben 4096 2008-01-17 18:11 subdir1
$ apack ../nasty-archive.jar df1.txt df2.txt
adding: df1.txt (stored 0%)
adding: df2.txt (stored 0%)
$ cd ..
$ rm -rf extraction
$ cd extraction
$ aunpack ../nasty-archive.jar
Archive: ../nasty-archive.jar
extracting: Unpack-3078/df1.txt
extracting: Unpack-3078/df2.txt
nasty-archive.jar: extracted to `nasty-archive' (multiple files in root)
$ ls -lR
.:
total 8
drwx------ 2 ben ben 4096 2008-01-17 18:40 nasty-archive
./nasty-archive:
total 16
-rw-rw-r-- 1 ben ben 29 2008-01-17 18:11 df1.txt
-rw-rw-r-- 1 ben ben 29 2008-01-17 18:11 df2.txt
