はじめに
こんにちは!今回はtarコマンドについて解説します。
tarはファイルやディレクトリを1つのアーカイブファイルに圧縮・展開するコマンドです。“tape archive"の略ですね。
バックアップ、ファイル配布、サーバー間でのファイル転送など、実務ではめっちゃよく使うコマンドです。圧縮形式の選択肢も多いので、使い方をしっかり理解しておくと役立ちますよ。
tarコマンドとは
tarは、複数のファイルやディレクトリを1つのアーカイブファイルにまとめる外部コマンドです。
単なるアーカイブ化だけでなく、gzipやbzip2などの圧縮ツールと組み合わせることで、圧縮アーカイブを作成できます。Linuxサーバーのバックアップやソフトウェアの配布に欠かせないコマンドです。
主な使い方:
- ファイルのバックアップ
- ディレクトリ全体の圧縮・転送
- アーカイブの展開・復元
基本構文
|
|
主な操作モード:
- c:アーカイブを作成(create)
- x:アーカイブを展開(extract)
- t:アーカイブの内容を表示(list)
主なオプション
| オプション | 説明 |
|---|---|
-c |
アーカイブを作成 |
-x |
アーカイブを展開 |
-t |
アーカイブの内容を表示 |
-f |
ファイル名を指定(ほぼ必須) |
-v |
詳細表示(処理中のファイル表示) |
-z |
gzip圧縮を使用(.tar.gz) |
-j |
bzip2圧縮を使用(.tar.bz2) |
-J |
xz圧縮を使用(.tar.xz) |
-p |
属性(権限・タイムスタンプ)を保持 |
-C |
展開先ディレクトリを指定 |
圧縮形式の比較
| 形式 | オプション | 圧縮率 | 速度 | 用途 |
|---|---|---|---|---|
| tar(無圧縮) | (なし) | 低 | 最速 | 単なるアーカイブ化 |
| tar.gz | -z |
中 | 速い | 汎用的、最も一般的 |
| tar.bz2 | -j |
高 | 遅い | 高圧縮率が必要な場合 |
| tar.xz | -J |
最高 | 最遅 | 最高圧縮率が必要な場合 |
使用例
例1: 単純なアーカイブを作成する(圧縮なし)
|
|
実行結果:
|
|
myproject/ディレクトリをアーカイブ化してarchive.tarを作成します。圧縮はしていないので、ファイルサイズはそのままです。
例2: gzip圧縮してアーカイブを作成する
|
|
実行結果:
|
|
myproject/をgzip圧縮してアーカイブ化します。.tar.gzは最も一般的な形式で、Linuxではほぼこの形式が使われます。
例3: bzip2圧縮で高圧縮率を実現
|
|
実行結果:
|
|
bzip2圧縮でアーカイブを作成します。圧縮率は高いですが、処理に時間がかかります。
例4: xz圧縮で最高圧縮率を実現
|
|
実行結果:
|
|
xz圧縮で最高レベルの圧縮率を実現します。大容量のバックアップに向いています。
例5: アーカイブを展開する
|
|
実行結果:
|
|
archive.tar.gzを展開します。-zオプションで自動的に圧縮形式を認識して展開されます。
例6: 展開先ディレクトリを指定する
|
|
実行結果:
|
|
archive.tar.gzを/home/user/restore/ディレクトリに展開します。-Cオプションで展開先を指定できます。
例7: アーカイブの内容を表示する
|
|
実行結果:
|
|
アーカイブを展開せずに内容を確認できます。大きなファイルのサイズを確認する時に便利です。
例8: 詳細表示付きで展開する
|
|
実行結果:
|
|
-vオプションで展開中のファイルを表示します。処理の進行状況が確認できて便利です。
例9: 属性を保持しながらアーカイブを作成
|
|
実行結果:
|
|
-pオプションでファイルの権限とタイムスタンプを保持します。バックアップには重要な設定です。
例10: 複数のディレクトリをまとめてアーカイブ
|
|
実行結果:
|
|
複数のディレクトリを1つのアーカイブにまとめます。バックアップやサーバー転送に便利です。
Tips・注意点
ファイル形式を自動認識する
|
|
最新のtarコマンドでは圧縮形式を自動認識するので、-zや-jを省略できます。
圧縮形式の選択ガイド
|
|
用途に応じて圧縮形式を選びましょう。迷ったらtar.gzが無難です。
アーカイブのサイズを確認
|
|
アーカイブ作成後は、サイズと含まれるファイル数を確認しましょう。
現在のディレクトリに展開しない工夫
|
|
展開時に想定外のファイルが出現するのを防ぐため、専用ディレクトリを作成してから展開するのがベストプラクティスです。
tar爆弾対策
|
|
信頼できない出所のアーカイブは、内容を確認してから展開しましょう。
実践的な使い方
ホームディレクトリのバックアップ
|
|
日付付きでホームディレクトリをバックアップします。$(date +%Y%m%d)で現在の日付がファイル名に付きます。
Webサーバーの設定ファイルをバックアップ
|
|
Apache設定をバックアップしてサーバー障害に備えます。-pで権限を保持することが重要です。
プロジェクトをサーバーに転送
|
|
プロジェクト全体をサーバーに転送する標準的な手順です。
アーカイブの内容をフィルタリングして確認
|
|
アーカイブ内の特定ファイルを検索する時に便利です。
ディレクトリをバージョン管理付きでバックアップ
|
|
古いバックアップを世代管理して、複数の復旧ポイントを確保します。
まとめ
tarコマンドのポイント:
- アーカイブ作成:
tar -czf archive.tar.gz dir/ - アーカイブ展開:
tar -xzf archive.tar.gz - 内容確認:
tar -tzf archive.tar.gz - gzip(.tar.gz):最も汎用的、推奨
- bzip2(.tar.bz2):高圧縮率
- xz(.tar.xz):最高圧縮率
- -p:属性保持(バックアップに重要)
- -v:詳細表示(進行状況確認)
- よく使う組み合わせ:
tar -czf,tar -xzf,tar -tzf
バックアップとファイル転送の基本となるコマンドです。圧縮形式の選択と属性保持を意識することで、実務的なバックアップ運用ができるようになりますよ!