tar
は、アーカイブファイルを作るためのコマンドです。
アーカイブを作る為の cf オプション
アーカイブファイルは-cf
オプションの指定で作れます。それぞれ以下の意味があります。
-c
新たにアーカイブファイルを作ります-f
ファイル名は...
です。
-f
は値を取るオプションで、これに渡したファイル名でアーカイブファイルが作られます。ファイル名には.tar
という拡張子を付けることが一般的です。
以下は作成例です。
tar -cf document.tar document
最後にアーカイブに含めたいディレクトリやファイルを続けます。これは複数指定でき、その場合はdocument html foo.yml
のように渡します。
アーカイブの中身を確認する為の tf オプション
上記セクションで作成したdocument.tar
にちゃんと特定のファイルが含まれてるか確認したい場合は、-tf
を使います。さらに-v
を追加するとls
の結果ような形で一覧できます。
-t
アーカイブファイルを一覧する-v
詳しく表示
以下は確認例です。
tar -tf document.tar
# document/
# document/1.md
アーカイブに含めるファイルを絞る
「しまった、アレ含ませたくなかった!」なんて場合は--exclude
オプションで含ませたくないディレクトリやファイルのパターンを渡します。
tar -f document.tar --exclude document/1.md
tar -tf document.tar
# document/
複数のパターンがある場合は、その数だけ--exclude
を指定する必要があります。
tar -cf archive.tar --exclude .git/ --exclude .DS_Store .
tar tf archive.tar
# .git/ と .DS_Store を除いた現在のディレクトリ以下の
# すべてのディレクトリとファイル
アーカイブにファイルを追加する rf オプション
「しまった、アレ指定し忘れた!」なんて場合は-rf
で後から追加できます。
-r
アーカイブに指定ディレクトリやファイルを追加
以下は追加例です。
mkdir html
touch html/1.html
tar -rf document.tar html
tar -tf document.tar
# document/
# document/1.md
# html/
# html/1.html
ちなみに作り直しても大丈夫です。
圧縮アーカイブファイルを czf, cjf オプション
tar
はgzip
とbzip2
による圧縮を行えます。これらを使ったアーカイブファイルの拡張子は一般的にそれぞれtar.gz
、tar.bz2
になります。
オプションに出てきたzj
はそれぞれ以下のような意味です。
-z
gzip
で圧縮する-j
bzip2
で圧縮する
以下例です。
# gzip で
tar czf document.tar.gz document
# bzip2 で
tar cjf document.tar.bz2 document
違いはbzip2
の方がアーカイブファイルサイズを小さくできますが、圧縮時間も倍以上掛かるようです。
アーカイブを展開する為の xf オプション
上記セクションで作成したdocument.tar
に展開したい場合は、-xf
を使います。
-x
アーカイブファイルからファイルを取り出す
tar -xf document.tar
後にアーカイブ内のあるファイルへのファイルパスを指定することで、それだけを取り出す事もできます。
tar -xf document.tar document/1.md
find document
# document
# document/1.md
取り出すのでは無く中身だけ見る
-xOf
として渡すことで、取り出すさずその中身を見れます。
tar -xOf document.tar document/1.md
# 1.md の中身
オプションについて
tar
コマンドでは最初の短いオプション(c
やf
など)の塊に限って-
を省略できます。つまり-cf
や-tf
の代わりにcf
、tf
と使うことができます。
tar cf document.tar document
tar tf document.tar
tar xf document.tar document