LoginSignup
36
31

More than 1 year has passed since last update.

tarコマンドまとめ

Last updated at Posted at 2021-11-13

tarコマンドとは

「tar」は、複数のファイルを1つにまとめたアーカイブファイルを作成/展開するコマンドである。また、作成・展開する時に圧縮・解凍を行うこともできる。

オプションが多いため覚えるのが大変だが、単語の意味を覚えれば記憶に残りやすい。

アーカイブとは

アーカイブとは複数のファイルを一つにまとめることである。

オプション

・操作オプション(-c-xは対で覚える)

オプション 英語(長いオプション) 意味
-c --create アーカイブを作成する
-x --extract アーカイブを展開する
-t --list 一覧表示する

・共通オプション(圧縮形式)

オプション 英語(長いオプション) 意味
-z --gzip gzip形式
-j --bzip2 bzip2形式
-J --xz xz形式

・共通オプション(その他)

オプション 英語(長いオプション) 意味
-v --verbose 処理したファイルを詳しく出力する
-f --file アーカイブファイル名を指定する

事前準備

アーカイブするためのファイルを作成する

$ mkdir filearchive
$ cd filearchive
$ touch test_{1..5}.txt
$ ls test*

test_1.txt  test_2.txt  test_3.txt  test_4.txt  test_5.txt

複数ファイルをアーカイブする

$ tar cvf ファイル名 アーカイブ対象ディレクトリ
//拡張子は.tarにすることが慣例
$ tar cvf filearchive.tar filearchive 

filearchive/
filearchive/test_1.txt
filearchive/test_2.txt
filearchive/test_3.txt
filearchive/test_4.txt
filearchive/test_5.txt

$ ll //作成されたかの確認
drwxr-xr-x 2 root root    96 11月 13 15:55 filearchive
-rw-r--r-- 1 root root 20480 11月 13 16:01 filearchive.tar

アーカイブファイルを展開する

$ tar xvf tarファイル名
//解凍されたか確認のために元のディレクトリを削除
$ rm -rf filearchive/
$ tar xvf filearchive.tar

filearchive/
filearchive/test_1.txt
filearchive/test_2.txt
filearchive/test_3.txt
filearchive/test_4.txt
filearchive/test_5.txt

//展開されたかの確認
$ ll
drwxr-xr-x 2 root root    96 11月 13 15:55 filearchive

圧縮してアーカイブ、解凍して展開する

tarコマンドは複数のファイルをアーカイブするものであり、圧縮はされているわけではない。しかし、圧縮形のオプションを使うことでアーカイブと圧縮を同時(連続して)に行うことが可能である。

アーカイブし、gzipで圧縮する(-z)

$ tar cvzf ファイル名 圧縮対象ディレクトリ
//拡張子は.tar.gzにすることが慣例
$ tar cvzf filearchive.tar.gz filearchive/

filearchive/
filearchive/test_1.txt
filearchive/test_2.txt
filearchive/test_3.txt
filearchive/test_4.txt
filearchive/test_5.txt

$ ll //作成、圧縮されたかの確認

drwxr-xr-x 2 root root    96 11月 13 15:55 filearchive
-rw-r--r-- 1 root root   270 11月 13 16:24 filearchive.tar.gz

gzipを解凍して展開する(-z)

$ tar xvzf ファイル名
//解凍されたか確認のために元のディレクトリを削除
$ rm -rf filearchive/
$ tar xvzf filearchive.tar.gz

filearchive/
filearchive/test_1.txt
filearchive/test_2.txt
filearchive/test_3.txt
filearchive/test_4.txt
filearchive/test_5.txt

$ ll //解凍、展開されたかの確認
drwxr-xr-x 2 root root    96 11月 13 15:55 filearchive
-rw-r--r-- 1 root root   270 11月 13 16:24 filearchive.tar.gz

bzip2(-j)、xz(J)も同様

アーカイブして圧縮

//bzip2
$ tar cvjf ファイル名 圧縮対象ディレクトリ
$ tar cvjf filearchive.tar.bz2 filearchive/

//xz
$ tar cvJf ファイル名 圧縮対象ディレクトリ
$ tar cvJf filearchive.tar.xz filearchive/

解凍して展開

//bzip2
$ tar xvjf ファイル名
$ tar xvjf filearchive.tar.bz2

//xz
$ tar xvJf ファイル名 圧縮対象ディレクトリ
$ tar xvJf filearchive.tar.xz

展開せずに中身を確認

-tオプションで展開せずに中身を確認することが出来る。

//gzip
tar tvzf filearchive.tar.gz

//bzip2
tar tvjf filearchive.tar.bz2

//xz
tar tvJf filearchive.tar.xz

圧縮形式の確認

たとえ拡張子がtar.gzとなっていても本当にgzip形式で圧縮しているか分からないため、圧縮形式を確認するコマンドを知っていた方が良いかもしれない。

$ file ファイル名

$  file filearchive.tar.gz
filearchive.tar.gz: gzip compressed data, from Unix, last modified: Sat Nov 13 16:46:36 2021

$ file filearchive.tar.bz2
filearchive.tar.bz2: bzip2 compressed data, block size = 900k

$ file filearchive.tar.xz
filearchive.tar.xz: XZ compressed data

参考記事

https://atmarkit.itmedia.co.jp/ait/articles/1608/15/news015.html
http://hydrocul.github.io/wiki/commands/tar.html

36
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
31