サーバーのログをまとめて別のマシンへ送りたい、いくつかのファイルを1つにして誰かに渡したい——そんな場面で毎回お世話になるのが tar です。
ただ、czf とか xzf とかオプションの並びが呪文みたいで、なんとなくコピペで済ませている人も多いと思います。
この記事では、tar を「作る・展開する・中身を見る」の3操作に絞って、意味から分かるように整理しました。
コピペではなく理解で使えるようにするのがゴールです。
tar とは何をするコマンドか
複数のファイルやディレクトリを1つのファイルにまとめる、それが tar というコマンド。
この「まとめただけ」のファイルを アーカイブ と呼び、拡張子には .tar が付きます。
大事なのは、tar 自体は圧縮をしないという点。あくまで「まとめる」だけの道具ですね。
サイズを小さくしたいときは gzip などの圧縮を組み合わせ、.tar.gz という形にします。
現場では「まとめる」と「圧縮する」を一発でやることがほとんどなので、その形を先に覚えると手が早くなるのです。
まず覚える3つ:作成・展開・中身の確認
tar でやることは、突き詰めるとこの3つだけです。
1. まとめて圧縮する(作成)
logs/ ディレクトリを logs.tar.gz にまとめて圧縮するなら、こう書きます。
tar -czf logs.tar.gz logs/
-c が「作成(create)」、-z が「gzip 圧縮」、-f が「ファイル名を指定」という意味です。
最後にまとめたい対象(ここでは logs/)を置く、という順番だけ押さえれば大丈夫。
2. 展開する(取り出す)
受け取った logs.tar.gz を元に戻すときは、先頭の -c を -x(展開)に変えるだけです。
tar -xzf logs.tar.gz
-x が「展開(extract)」を表します。うしろの -z と -f は作成のときと同じ役割ですね。
作成と展開で変わるのは先頭の1文字(c か x)だけ、と考えると混乱しません。
3. 展開せずに中身を見る(確認)
いきなり展開する前に、何が入っているかを覗いておくと安全です。
tar -tzf logs.tar.gz
-t は「一覧(list)」で、中身を展開せずにファイル名だけを表示します。
知らないアーカイブを渡されたら、まず -tzf で中身を確認する癖をつけておくと事故が減るのです。
オプションは「動作+z+f」で読む
czf・xzf・tzf と並ぶと暗号に見えますが、3つに分解すると簡単です。
- c / x / t … 何をするか(作成・展開・一覧)を選ぶ
- z … gzip で圧縮/解凍する
- f … 直後にファイル名を指定する
先頭の1文字で「動作」を選び、z で「圧縮を挟むか」を決め、f で「対象ファイル」を指定している——ただそれだけです。
この3点セットで読むと、初めて見る並びでも意味が取れるようになります。
よくあるつまずきと対処
どこに展開されたのか分からない
tar が展開する先は、基本的にいま自分がいるディレクトリ。
作業場所を散らかしたくないなら、-C で展開先を指定するのが安全です。
tar -xzf logs.tar.gz -C /tmp/restore
これで /tmp/restore の中に展開されます(展開先のフォルダは先に作っておきます)。
.tar と .tar.gz を取り違える
圧縮していない .tar に対して -z を付けると、gzip 形式じゃないと怒られます。
逆に、.tar.gz なのに -z を忘れたときも同じくエラーです。
迷ったときは中身確認と同じ要領で、-tf(圧縮なし)か -tzf(gzip)のどちらで開けるか試すと判別できます。
進捗が見えなくて不安になる
大きなアーカイブだと無言で固まったように見えるので、-v を足すと処理中のファイル名が流れて安心です。
tar -czvf logs.tar.gz logs/
v は verbose(詳しく)の v です。普段は付けず、様子を見たいときだけ足すと快適ですよ。
同じ「コマンドで日々の作業を減らす」シリーズとして、JSON を扱う jq の基本も別記事にまとめています。
最後に
tar は、先頭の c / x / t と、圧縮の z、ファイル指定の f——この3つが分かれば9割の場面を乗り切れるのです。
残りは -C や -v のような「あると便利」なオプションを、必要になったときに1つずつ足していけば十分です。
まずは手元の適当なフォルダで、作成 → 中身確認 → 展開 の3手を一度なぞってみてください。
以上です。










コメントを残す