tar – アーカイブファイルを作成・展開するコマンド

アーカイブ作成・展開

tar コマンドは、複数のファイルやディレクトリを 1つのアーカイブファイルにまとめたり、展開する ためのコマンドです。
実務では、バックアップ作成、ログのまとめ、ソースコード配布、圧縮との組み合わせで利用されます。

構文(Syntax)

tar [オプション] [ARCHIVE_FILE] [FILE...]

主なオプション一覧

オプション説明使用例
-c新しいアーカイブを作成tar -cf archive.tar files/
-xアーカイブを展開tar -xf archive.tar
-tアーカイブの内容を一覧表示tar -tf archive.tar
-f FILEアーカイブファイル名を指定(必須に近い)tar -cf backup.tar /home/user/
-v詳細を表示(処理中のファイルを表示)tar -cvf archive.tar files/
-zgzip 圧縮を利用tar -czf archive.tar.gz files/
-jbzip2 圧縮を利用tar -cjf archive.tar.bz2 files/
-Jxz 圧縮を利用tar -cJf archive.tar.xz files/
--exclude=PATTERN除外するファイル・ディレクトリを指定tar -czf archive.tar.gz --exclude='*.log' files/
-C DIR処理前にディレクトリを移動tar -cf backup.tar -C /var log/

実行例

ディレクトリをアーカイブにまとめる

tar -cf backup.tar /home/user/

gzip で圧縮アーカイブを作成

tar -czf backup.tar.gz /var/log/

bzip2 で圧縮アーカイブを作成

tar -cjf backup.tar.bz2 project/

xz で高圧縮アーカイブを作成

tar -cJf backup.tar.xz project/

アーカイブを展開

tar -xf backup.tar

圧縮アーカイブ(.tar.gz)の展開

tar -xzf backup.tar.gz

アーカイブの内容を確認

tar -tf backup.tar

出力例:

home/user/file1.txt
home/user/file2.txt

除外ルールを指定して作成

tar -czf logs.tar.gz --exclude='*.old' /var/log/

エラー例(-f を忘れる)

tar -cz backup.tar.gz /var/log/

出力例:

tar: Cowardly refusing to create an empty archive
Try 'tar --help' or 'tar --usage' for more information.

関連コマンド

  • gzip : 単体ファイルの圧縮/展開
  • bzip2 : 高圧縮率の圧縮/展開
  • xz : さらに高圧縮率の圧縮/展開
  • zip / unzip : Windows互換のZIP形式を扱う

備考

  • tar 自体は「アーカイブ作成・展開」コマンドであり、圧縮はオプション(-z, -j, -J)で付与されます。
  • 圧縮形式はファイル拡張子(.tar.gz, .tar.bz2, .tar.xz)で見分けるのが一般的。
  • 巨大ファイルの圧縮・展開には時間とCPU負荷がかかるため注意が必要。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント