tarコマンド

環境

CentOS7.6(64bit)

概要

tar形式アーカイブに圧縮/展開します。

書式

tar [オプション] アーカイブ [ファイル名|ディレクトリ名]

オプション

-A
アーカイブにファイルを追加します。

-c
新しいアーカイブを作成します。

–delete
アーカイブから指定したファイルを削除します。

-f アーカイブ
指定したアーカイブ、もしくはデバイスを利用します。

-j
bzip2形式を利用して圧縮/解凍します。

-k
展開時に既に同じファイル名があった場合は、上書きしない。

–lzma
LZMAアルゴリズムを利用した圧縮を行う。

-v
処理したファイルの一覧を表示します。

-r
指定したファイルをアーカイブの最後に追加します。

-t
アーカイブの内容を一覧表示します。

-x
アーカイブを展開します。

-z
アーカイブをgzip形式を利用して圧縮/解凍します。

サンプル

例1

指定したファイル群を1つのアーカイブファイルにまとめます。

$ ls -l
total 12
-rw-rw-r-- 1 user1 user1 44 Dec 18 01:08 test1.txt
-rw-rw-r-- 1 user1 user1 66 Dec 18 01:08 test2.txt
-rw-rw-r-- 1 user1 user1 162 Dec 18 01:08 test3.txt

$ tar cvf test.txt.tar test*.txt
test1.txt
test2.txt
test3.txt

$ ls -l
total 24
-rw-rw-r-- 1 user1 user1 44 Dec 18 01:08 test1.txt
-rw-rw-r-- 1 user1 user1 66 Dec 18 01:08 test2.txt
-rw-rw-r-- 1 user1 user1 162 Dec 18 01:08 test3.txt
-rw-rw-r-- 1 user1 user1 10240 Dec 18 01:09 test.txt.tar

アーカイブファイル(test1.txt~test3.txtをまとめたファイル)が作成されます。

例2

ディレクトリ配下のサブディレクトリやファイルすべてを1つのファイルにまとめてgzipで圧縮します。

$ pwd
/home/user1

$ tree
.
└── dir
├── dir1
│ └── test1.txt
├── dir2
│ └── test2.txt
└── dir3
└── test3.txt
 
4 directories, 3 files

$ tar zcvf dir.tar.gz ./dir/

./dir/
./dir/dir2/
./dir/dir2/test2.txt
./dir/dir3/
./dir/dir3/test3.txt
./dir/dir1/
./dir/dir1/test1.txt
$ ls -lF
total 8
drwxrwxr-x 5 user1 user1 4096 Dec 18 11:24 dir/
-rw-rw-r-- 1 user1 user1 257 Dec 18 11:25 dir.tar.gz

アーカイブファイル(dirディレクトリ配下すべてをまとめたファイル)が作成されます。

例3

tar+gzipされたアーカイブを解凍/展開します。

$ ls -l
total 4
-rw-rw-r-- 1 user1 user1 257 Dec 18 11:25 dir.tar.gz

$ tar zxvf dir.tar.gz

./dir/
./dir/dir2/
./dir/dir2/test2.txt
./dir/dir3/
./dir/dir3/test3.txt
./dir/dir1/
./dir/dir1/test1.txt
$ ls -lF
total 8
drwxrwxr-x 5 user1 user1 4096 Dec 18 11:24 dir/
-rw-rw-r-- 1 user1 user1 257 Dec 18 11:25 dir.tar.gz

アーカイブファイルが解凍、展開されています。(dir/)

$ tree
.
├── dir
│ ├── dir1
│ │ └── test1.txt
│ ├── dir2
│ │ └── test2.txt
│ └── dir3
│ └── test3.txt
└── dir.tar.gz
 
4 directories, 4 files
タイトルとURLをコピーしました