tar.gzの正体と、その作り方

UNIX系を弄っていると、よく遭遇するのがtar.gzだのtar.bz2だのといった圧縮ファイルです。
なんで拡張子が二個並んでるんだ? と思ってましたが……

tarは梱包しかやらないそうで*1、圧縮したい場合更にgzipなりで固める必要があります。
とはいえ……まとめて、固めてなんてやるのは結構ホネですよね。

そんな時に生きるのが前回紹介したプロセス置換です。

tar cf >(bzip2 -c > file.tar.bz2) $directory_name

Tarでディレクトリをひとまとめした直後、
その結果をダイレクトにbzip2の標準出力に放り込みます。
こんなものパイプで書いたら気が狂いそうですが、一つテクを知ってるだけでこんなにも違いが出ました

*1:この記事書いててはじめて知りました