tarコマンドの使い方と圧縮のオプション

tar

アーカイブファイルとしてまとめるコマンド。 単体では圧縮しないため、オプションでzjを指定する必要がある。

以下コマンドはmacOS High Sierraで確認しました。

zipコマンドでの圧縮方法はこちら

書式

tar [オプション] アーカイブ

tar.gzの圧縮と解凍

オプションのcxが異なる。

圧縮

$ tar -zcvf output_file.tar.gz ./target_dir

target_dirをアーカイブとしてまとめ、gzipで圧縮したoutput_file.tar.gzを生成する。

解凍

tar -zxvf xxxx.tar.gz

拡張子.tar.gzを解凍する。

オプションの意味

オプション説明
-zgzip形式にアーカイブを圧縮・展開する。
-c新しくアーカイブを作成する。
-xアーカイブを展開する。
-v作成・展開するアーカイブのファイルリストを表示する。
-fアーカイブファイルを指定する。

他の形式での圧縮/解凍

オプション形式
-jtar.bz2
-Jtar.xz
-ztar.gz

tar.bz2

圧縮

$ tar -jcvf output_file.tar.bz2 ./target_dir

解凍

$ tar -jxvf output_file.tar.gz

tar.xz

圧縮

$ tar -Jcvf output_file.tar.xz ./target_dir

解凍

$ tar -Jxvf output_file.tar.xz

解凍せずに中身を確認する tzf

$ tar -tzf output_file.tar.gz
./target_dir/
./target_dir/bbb.txt
./target_dir/aaa.txt

上書きせず解凍する k

xで解凍する際、既にあるファイルを上書きせず解凍する。

$ tar -kzxvf output_file.tar.gz
x ./target_dir/: Already exists
x ./target_dir/ccc.txt
x ./target_dir/bbb.txt: Already exists
x ./target_dir/aaa.txt: Already exists
tar: Error exit delayed from previous errors.

存在しなかった./target_dir/ccc.txtは解凍されファイルが生成された。 一つでも既存のファイルがある場合、tar: Error exit delayed from previous errors.がでるようだ。

オプション

option説明
-tアーカイブの中身のリストを出力する。
-kxでの解凍時に既にあるファイルを上書きしない。
-Aアーカイブにファイルを追加する。

終わりに

zipコマンドでの圧縮方法はこちら

参考

 関連記事

 新着 or 更新記事