「ディレクトリごとバックアップとして圧縮したいけど、オプションが多すぎて覚えられない」
Linuxを触り始めたエンジニアが必ず一度は壁にぶつかるのが、この
tar(ター)コマンドです。この記事では、Linux環境でファイルやディレクトリを圧縮・解凍(展開)する
tar コマンドの実践的な使い方を解説します。単なるオプション一覧の羅列ではなく、現場で必ず使う「黄金の組み合わせ(zxvf / zcvf)」や、解凍先ディレクトリの指定(-C)など、実務で迷わないための鉄則をまとめました。
1. 解凍(展開)の黄金パターン「tar -zxvf」
ネット上で配布されているLinux用ソフトウェアのほとんどは、.tar.gz という形式で圧縮されています。これを解凍(展開)するには、以下のコマンドを丸暗記しておけば間違いありません。
# tar -zxvf ファイル名.tar.gz
・
z:gzip形式(.gz)を扱う・
x:解凍(eXtract)する・
v:処理したファイル名を画面に詳細表示(Verbose)する・
f:対象のファイル名を指定(File)する※
f f オプションの直後には必ずファイル名が来なければなりません。tar -zxfv のように f の後ろに別のオプション文字を置くと、v をファイル名として解釈しようとしてエラーになります。慣例として f は一番最後に置くと覚えておくと安全です。
特定のディレクトリに解凍する(-C)
デフォルトでは、コマンドを実行した「現在のディレクトリ」に解凍されてしまいます。「/opt」や「/usr/local」など、別のディレクトリを指定して解凍したい場合は
-C(大文字のシー)オプションを追加します。これも実務で頻出する必須テクニックです。# /opt ディレクトリ配下に解凍する # tar -zxvf sample.tar.gz -C /opt/
bzip2形式(.tar.bz2)を解凍する(-j)
.tar.gz の代わりに .tar.bz2 形式で配布されているソフトウェアも存在します。この場合は z の代わりに j オプションを使います。# .tar.bz2 形式のファイルを解凍する # tar -jxvf ファイル名.tar.bz2
2. 圧縮の黄金パターン「tar -zcvf」
逆に、ログファイルの退避やシステム移行などで、ディレクトリごと圧縮してバックアップを作りたい場合は、x の代わりに c(Create:作成)を使います。# 基本書式: tar -zcvf [作成する圧縮ファイル名] [圧縮したい対象パス] # /var/www/html ディレクトリを backup.tar.gz という名前で圧縮する # tar -zcvf backup.tar.gz /var/www/html/
特定のファイルやディレクトリを除外して圧縮する(--exclude)
「ディレクトリ全体を圧縮したいけど、重い画像フォルダや過去のバックアップファイルは除外したい」という場合は--exclude オプションを使います。# images フォルダを除外して圧縮する # tar -zcvf backup.tar.gz /var/www/html/ --exclude="/var/www/html/images"
圧縮なしでアーカイブだけ作る(-cvf)
圧縮は不要だがファイルをひとまとめにしたい場合は、z を省いて -cvf だけで使います。転送先で展開しやすいよう単純にまとめるだけのケースで役立ちます。# 圧縮なしでアーカイブを作成する # tar -cvf archive.tar /var/www/html/
3. 【注意】圧縮ファイルの中身だけを事前に確認する(-t)
「得体の知れない tar.gz ファイルをもらったけど、いきなり解凍して現在のディレクトリが散らかるのが怖い」そんな時は、解凍する前に
-t(lisT)オプションを使って「中に何が入っているか」を一覧表示で確認するのが安全な手順です。# 圧縮ファイルの中身を解凍せずに確認する # tar -ztvf sample.tar.gz
本記事のまとめ(tarオプション早見表)
| やりたいこと | コマンド・オプション |
|---|---|
| ファイルを解凍(展開)する | tar -zxvf ファイル名.tar.gz |
| 指定したディレクトリに解凍する | tar -zxvf ファイル名.tar.gz -C /出力先パス/ |
| bzip2形式(.tar.bz2)を解凍する | tar -jxvf ファイル名.tar.bz2 |
| ディレクトリを圧縮する | tar -zcvf 作成するファイル名.tar.gz 圧縮対象パス/ |
| 特定のフォルダを除外して圧縮する | tar -zcvf backup.tar.gz パス/ --exclude="除外するパス" |
| 圧縮なしでアーカイブだけ作る | tar -cvf archive.tar 対象パス/ |
| 解凍せずに中身だけを確認する | tar -ztvf ファイル名.tar.gz |
コマンドの打ち間違いで、システムを壊してしまったことはありませんか?
tarコマンドのオプションや実行パスをひとつ間違えるだけで、システムに必要な重要ファイルを意図せず上書きしてしまったり、想定外の場所に大量のファイルを展開してしまう大事故に繋がります。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
登録10秒/自動返信でDL/合わなければ解除3秒
<<関連記事>>
・pstree
・chsh
・finger
・duコマンドでディスク使用量を確認する方法|ディレクトリごとの容量や容量順ソートも
・LinuxのOSバージョンを確認するコマンド|uname・os-release・hostnamectlの使い方
