このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】アーカイブの作成と展開:tarコマンド

tarコマンドの概要

 「tar」コマンドは、複数のファイルやディレクトリを一つのアーカイブファイルにまとめたり、まとめられたアーカイブファイルを展開したりするために使用されるLinuxのユーティリティです。tarは、Tape Archiveの略で、もともとはテープバックアップのために作られましたが、現在では広くファイルのアーカイブと展開に使われています。

主なオプションと説明

【構文】
tar [オプション[アーカイブ名]] [ファイルパス]

tar」コマンドのオプションは、「-」を付けても付けなくとも動作します。

オプション説明
c新しいアーカイブを作成する(create)
tアーカイブの内容を一覧表示する(list)
xアーカイブを展開する(extract)
fアーカイブファイル名を指定する(file)
v詳細情報を表示する(verbose)
zgzip形式で圧縮されたアーカイブを処理する
jbzip2形式で圧縮されたアーカイブを処理する
Jxz形式で圧縮されたアーカイブを処理する
主なオプションと説明

コマンドの使用例と解説

ファイルとディレクトリの作成

 まず、アーカイブするファイルとディレクトリを作成し、「ls」コマンドで作成したファイルとディレクトリを確認します。

以下のコマンドを実行します。

  • date | tee file1.txt file2.txt」コマンド
  • mkdir directory」コマンド
  • ls」コマンド
user01@ubuntu-vm:~$ date | tee file1.txt file2.txt
2024年  6月  2日 日曜日 00:36:01 JST
user01@ubuntu-vm:~$ mkdir directory
user01@ubuntu-vm:~$ ls
directory  file2.txt  ダウンロード  デスクトップ  ビデオ    ミュージック
file1.txt  snap       テンプレート  ドキュメント  ピクチャ  公開

1.アーカイブの作成

・「tar cvf archive.tar file1.txt file2.txt directory/」コマンドを実行し、「ls -l」コマンドで確認します。

user01@ubuntu-vm:~$ tar cvf archive.tar file1.txt file2.txt directory/
file1.txt
file2.txt
directory/
user01@ubuntu-vm:~$ ls -l
合計 60
-rw-rw-r-- 1 user01 user01 10240  6月  2 02:21 archive.tar
drwxrwxr-x 2 user01 user01  4096  6月  2 02:20 directory
-rw-rw-r-- 1 user01 user01    43  6月  2 02:20 file1.txt
-rw-rw-r-- 1 user01 user01    43  6月  2 02:20 file2.txt
drwx------ 4 user01 user01  4096  5月  5 14:52 snap
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ダウンロード
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 テンプレート
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 デスクトップ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ドキュメント
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ビデオ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ピクチャ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ミュージック
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 公開
  • c:新しいアーカイブを作成
  • v:詳細情報を表示
  • f:アーカイブファイル名を指定
  • archive.tar:作成するアーカイブファイル名
  • file1.txtfile2.txtdirectory/:アーカイブに含めるファイルとディレクトリ

2.アーカイブの内容を一覧表示

・「tar tvf archive.tar」コマンドを実行し、「ls -l」コマンドで確認します。

user01@ubuntu-vm:~$ tar tvf archive.tar
-rw-rw-r-- user01/user01    43 2024-06-02 02:20 file1.txt
-rw-rw-r-- user01/user01    43 2024-06-02 02:20 file2.txt
drwxrwxr-x user01/user01     0 2024-06-02 02:20 directory/
  • t:アーカイブの内容を一覧表示
  • v:詳細情報を表示
  • f:アーカイブファイル名を指定
  • archive.tar:一覧表示するアーカイブファイル名

3.アーカイブの展開

まず、「 file1.txt」、「file2.txt」、「directory」 を削除しておきます。

・「rm -r file* directory」コマンドを実行し、「ls」コマンドで確認します。

user01@ubuntu-vm:~$ rm -r file* directory
user01@ubuntu-vm:~$ ls
archive.tar  ダウンロード  デスクトップ  ビデオ    ミュージック
snap         テンプレート  ドキュメント  ピクチャ  公開

・「tar xvf archive.tar」コマンドを実行し、「ls -l」コマンドで確認します。

user01@ubuntu-vm:~$ tar xvf archive.tar
file1.txt
file2.txt
directory/
user01@ubuntu-vm:~$ ls -l
合計 60
-rw-rw-r-- 1 user01 user01 10240  6月  2 02:21 archive.tar
drwxrwxr-x 2 user01 user01  4096  6月  2 02:20 directory
-rw-rw-r-- 1 user01 user01    43  6月  2 02:20 file1.txt
-rw-rw-r-- 1 user01 user01    43  6月  2 02:20 file2.txt
drwx------ 4 user01 user01  4096  5月  5 14:52 snap
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ダウンロード
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 テンプレート
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 デスクトップ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ドキュメント
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ビデオ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ピクチャ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ミュージック
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 公開
  • x:アーカイブを展開
  • v:詳細情報を表示
  • f:アーカイブファイル名を指定
  • archive.tar:展開するアーカイブファイル名

4.gzip形式で圧縮されたアーカイブの作成

・「tar cvfz archive.tar.gz file1.txt file2.txt directory/」コマンドを実行し、「ls -l」コマンドで確認します。

user01@ubuntu-vm:~$ tar cvfz archive.tar.gz file1.txt file2.txt directory/
file1.txt
file2.txt
directory/
user01@ubuntu-vm:~$ ls -l
合計 64
-rw-rw-r-- 1 user01 user01 10240  6月  2 02:21 archive.tar
-rw-rw-r-- 1 user01 user01   222  6月  2 02:32 archive.tar.gz
drwxrwxr-x 2 user01 user01  4096  6月  2 02:20 directory
-rw-rw-r-- 1 user01 user01    43  6月  2 02:20 file1.txt
-rw-rw-r-- 1 user01 user01    43  6月  2 02:20 file2.txt
drwx------ 4 user01 user01  4096  5月  5 14:52 snap
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ダウンロード
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 テンプレート
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 デスクトップ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ドキュメント
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ビデオ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ピクチャ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ミュージック
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 公開
  • z:gzip形式で圧縮

他のオプションは上記と同じ

5.gzip形式で圧縮されたアーカイブの展開

まず、「 file1.txt」、「file2.txt」、「directory」 を削除しておきます。

・「rm -r file* directory」コマンドを実行し、「ls」コマンドで確認します。

user01@ubuntu-vm:~$ rm -r file* directory
user01@ubuntu-vm:~$ ls
archive.tar     ダウンロード  ドキュメント  ミュージック
archive.tar.gz  テンプレート  ビデオ        公開
snap            デスクトップ  ピクチャ

・「tar xvzf archive.tar.gz」コマンドを実行し、「ls -l」コマンドで確認します。

user01@ubuntu-vm:~$ tar xvzf archive.tar.gz
file1.txt
file2.txt
directory/
user01@ubuntu-vm:~$ ls -l
合計 64
-rw-rw-r-- 1 user01 user01 10240  6月  2 02:21 archive.tar
-rw-rw-r-- 1 user01 user01   222  6月  2 02:32 archive.tar.gz
drwxrwxr-x 2 user01 user01  4096  6月  2 02:20 directory
-rw-rw-r-- 1 user01 user01    43  6月  2 02:20 file1.txt
-rw-rw-r-- 1 user01 user01    43  6月  2 02:20 file2.txt
drwx------ 4 user01 user01  4096  5月  5 14:52 snap
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ダウンロード
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 テンプレート
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 デスクトップ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ドキュメント
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ビデオ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ピクチャ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ミュージック
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 公開
  • z:gzip形式で圧縮されたアーカイブを処理

他のオプションは上記と同じ

6.bzip2形式で圧縮されたアーカイブの作成

・「tar cvfj archive.tar.bz2 file1.txt file2.txt directory/」コマンドを実行し、「ls -l」コマンドで確認します。

user01@ubuntu-vm:~$ tar cvfj archive.tar.bz2 file1.txt file2.txt directory/
file1.txt
file2.txt
directory/
user01@ubuntu-vm:~$ ls -l
合計 68
-rw-rw-r-- 1 user01 user01 10240  6月  2 02:21 archive.tar
-rw-rw-r-- 1 user01 user01   253  6月  2 02:39 archive.tar.bz2
-rw-rw-r-- 1 user01 user01   222  6月  2 02:32 archive.tar.gz
drwxrwxr-x 2 user01 user01  4096  6月  2 02:20 directory
-rw-rw-r-- 1 user01 user01    43  6月  2 02:20 file1.txt
-rw-rw-r-- 1 user01 user01    43  6月  2 02:20 file2.txt
drwx------ 4 user01 user01  4096  5月  5 14:52 snap
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ダウンロード
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 テンプレート
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 デスクトップ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ドキュメント
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ビデオ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ピクチャ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ミュージック
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 公開
  • j:bzip2形式で圧縮

他のオプションは上記と同じ

7.bzip2形式で圧縮されたアーカイブの展開

まず、「 file1.txt」、「file2.txt」、「directory」 を削除しておきます。

・「rm -r file* directory」コマンドを実行し、「ls」コマンドで確認します。

user01@ubuntu-vm:~$ rm -r file* directory
user01@ubuntu-vm:~$ ls
archive.tar      snap          デスクトップ  ピクチャ
archive.tar.bz2  ダウンロード  ドキュメント  ミュージック
archive.tar.gz   テンプレート  ビデオ        公開

・「tar xvfj archive.tar.bz2」コマンドを実行し、「ls -l」コマンドで確認します。

user01@ubuntu-vm:~$ tar xvfj archive.tar.bz2
file1.txt
file2.txt
directory/
user01@ubuntu-vm:~$ ls -l
合計 68
-rw-rw-r-- 1 user01 user01 10240  6月  2 02:21 archive.tar
-rw-rw-r-- 1 user01 user01   253  6月  2 02:39 archive.tar.bz2
-rw-rw-r-- 1 user01 user01   222  6月  2 02:32 archive.tar.gz
drwxrwxr-x 2 user01 user01  4096  6月  2 02:20 directory
-rw-rw-r-- 1 user01 user01    43  6月  2 02:20 file1.txt
-rw-rw-r-- 1 user01 user01    43  6月  2 02:20 file2.txt
drwx------ 4 user01 user01  4096  5月  5 14:52 snap
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ダウンロード
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 テンプレート
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 デスクトップ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ドキュメント
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ビデオ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ピクチャ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ミュージック
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 公開
  • j:bzip2形式で圧縮されたアーカイブを処理

他のオプションは上記と同じ

8.xz形式で圧縮されたアーカイブの作成

・「tar cvfJ archive.tar.xz file1.txt file2.txt directory/」コマンドを実行し、「ls -l」コマンドで確認します。

user01@ubuntu-vm:~$ tar cvfJ archive.tar.xz file1.txt file2.txt directory/
file1.txt
file2.txt
directory/
user01@ubuntu-vm:~$ ls -l
合計 72
-rw-rw-r-- 1 user01 user01 10240  6月  2 02:21 archive.tar
-rw-rw-r-- 1 user01 user01   253  6月  2 02:39 archive.tar.bz2
-rw-rw-r-- 1 user01 user01   222  6月  2 02:32 archive.tar.gz
-rw-rw-r-- 1 user01 user01   248  6月  2 02:44 archive.tar.xz
drwxrwxr-x 2 user01 user01  4096  6月  2 02:20 directory
-rw-rw-r-- 1 user01 user01    43  6月  2 02:20 file1.txt
-rw-rw-r-- 1 user01 user01    43  6月  2 02:20 file2.txt
drwx------ 4 user01 user01  4096  5月  5 14:52 snap
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ダウンロード
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 テンプレート
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 デスクトップ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ドキュメント
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ビデオ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ピクチャ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ミュージック
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 公開
  • J:xz形式で圧縮

他のオプションは上記と同じ

9.xz形式で圧縮されたアーカイブの展開

まず、「 file1.txt」、「file2.txt」、「directory」 を削除しておきます。

・「rm -r file* directory」コマンドを実行し、「ls」コマンドで確認します。

user01@ubuntu-vm:~$ rm -r file* directory
user01@ubuntu-vm:~$ ls
archive.tar      archive.tar.xz  テンプレート  ビデオ        公開
archive.tar.bz2  snap            デスクトップ  ピクチャ
archive.tar.gz   ダウンロード    ドキュメント  ミュージック

・「tar xvfJ archive.tar.xz」コマンドを実行し、「ls -l」コマンドで確認します。

user01@ubuntu-vm:~$ tar xvfJ archive.tar.xz
file1.txt
file2.txt
directory/
user01@ubuntu-vm:~$ ls -l
合計 72
-rw-rw-r-- 1 user01 user01 10240  6月  2 02:21 archive.tar
-rw-rw-r-- 1 user01 user01   253  6月  2 02:39 archive.tar.bz2
-rw-rw-r-- 1 user01 user01   222  6月  2 02:32 archive.tar.gz
-rw-rw-r-- 1 user01 user01   248  6月  2 02:44 archive.tar.xz
drwxrwxr-x 2 user01 user01  4096  6月  2 02:20 directory
-rw-rw-r-- 1 user01 user01    43  6月  2 02:20 file1.txt
-rw-rw-r-- 1 user01 user01    43  6月  2 02:20 file2.txt
drwx------ 4 user01 user01  4096  5月  5 14:52 snap
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ダウンロード
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 テンプレート
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 デスクトップ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ドキュメント
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ビデオ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ピクチャ
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 ミュージック
drwxr-xr-x 2 user01 user01  4096  1月  1 10:51 公開
  • J:xz形式で圧縮されたアーカイブを処理

他のオプションは上記と同じ

10.作成したファイルとディレクトリの削除

この演習で作成したファイルとディレクトリを削除します。

・「rm -r file* archive* directory」コマンドを実行して、「ls」コマンドで削除されたかを確認します。

user01@ubuntu-vm:~$ rm -r file* archive* directory
user01@ubuntu-vm:~$ ls
snap          テンプレート  ドキュメント  ピクチャ      公開
ダウンロード  デスクトップ  ビデオ        ミュージック

まとめ

 「tar」コマンドは、ファイルのアーカイブと展開を効率的に行うための強力なツールです。以下の表を参考に、適切なオプションを使用してアーカイブや展開を行ってください。

これらのオプションを組み合わせることで、様々なアーカイブや圧縮形式に対応することができます。

オプション説明
c新しいアーカイブを作成する
tアーカイブの内容を一覧表示する
xアーカイブを展開する
fアーカイブファイル名を指定する
v詳細情報を表示する
zgzip形式で圧縮されたアーカイブを処理する
jbzip2形式で圧縮されたアーカイブを処理する
Jxz形式で圧縮されたアーカイブを処理する
主なオプションと説明