言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

  1. トップページ
  2. Bash辞典
  3. tar

tar

『tar』はファイルやディレクトリをまとめてアーカイブ(1つのファイルに束ねる)するコマンドです。gzip や bzip2 と組み合わせて圧縮もできます。Linux/macOS で最も広く使われるアーカイブツールです。

構文

アーカイブを作成します(gzip 圧縮)。

tar -czf アーカイブ名.tar.gz ファイルまたはディレクトリ

アーカイブを展開(解凍)します。

tar -xzf アーカイブ名.tar.gz

展開(解凍)せず、アーカイブの内容を確認します。

tar -tzf アーカイブ名.tar.gz

アーカイブを作成します(bzip2 圧縮)。

tar -cjf アーカイブ名.tar.bz2 ファイルまたはディレクトリ

指定ディレクトリに展開(解凍)します。

tar -xzf アーカイブ名.tar.gz -C 展開先ディレクトリ

オプション一覧

オプション概要
-cアーカイブを作成します(create)。
-xアーカイブを展開(解凍)します(extract)。
-tアーカイブの内容一覧を表示します(list)。
-zgzip 圧縮・展開(解凍)を行います(.tar.gz / .tgz)。
-jbzip2 圧縮・展開(解凍)を行います(.tar.bz2)。
-Jxz 圧縮・展開(解凍)を行います(.tar.xz)。
-f ファイル名アーカイブのファイル名を指定します(必須)。
-v処理したファイルを詳細表示します(verbose)。
-C ディレクトリ展開(解凍)先ディレクトリを指定します。
--exclude=パターン特定ファイルをアーカイブから除外します。
-pパーミッション(所有者・権限)を保持します。
--strip-components=N展開(解凍)時にパスの先頭 N 階層を削除します。

サンプルコード

以下のディレクトリ構造を例に説明します。

📁 ~/project/ 📁 src/ 📄 index.php 📁 css/ 📄 style.css 📁 docs/ 📄 README.md 📁 node_modules/

ディレクトリを gzip 圧縮してアーカイブを作成します。『-v』を付けると処理中のファイルが表示されます。

tar -czvf project.tar.gz ~/project/
~/project/
~/project/src/
~/project/src/index.php
~/project/src/css/
~/project/src/css/style.css
~/project/docs/
~/project/docs/README.md

展開(解凍)せず、アーカイブの内容を確認します。

tar -tzf project.tar.gz
~/project/
~/project/src/
~/project/src/index.php
~/project/src/css/
~/project/src/css/style.css
~/project/docs/
~/project/docs/README.md

アーカイブをカレントディレクトリに展開(解凍)します。

tar -xzf project.tar.gz

指定ディレクトリに展開(解凍)します。

tar -xzf project.tar.gz -C /tmp/restore/

『.git』と『node_modules』を除外してアーカイブを作成します。

archive_clean.sh
tar -czf project-clean.tar.gz \
    --exclude='.git' \
    --exclude='node_modules' \
    ~/project/
bash archive_clean.sh

日付付きのバックアップを作成します。

backup.sh
today=$(date +%Y%m%d)
tar -czf "backup_${today}.tar.gz" ~/project/
bash backup.sh

bzip2 圧縮でアーカイブを作成します(gzip より高圧縮率ですが、時間がかかります)。

tar -cjf project.tar.bz2 ~/project/

アーカイブの圧縮後のファイルサイズを確認します。

ls -lh project.tar.gz
-rw-r--r-- 1 user user 2.3M Mar  6 12:00 project.tar.gz

概要

オプションの覚え方は『-czf』(Create + gZip + File)と『-xzf』(eXtract + gZip + File)がよく使われます。『-v』を加えると処理中のファイルが表示されて進捗を確認できます。

バックアップスクリプトでは『--exclude』で不要なディレクトリ(『.git』・『node_modules』など)を除外するのが重要です。圧縮ファイルを扱う他のコマンドについては gzip / bzip2 / zip も参照してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。