環境
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