tar コマンド 2014/10/16
複数のファイルを1つのアーカイブファイルにまとめたり、逆に展開したりするコマンド。オプション -z を使えば、gzip での圧縮または解凍も同時に行う。
tarでのアーカイブファイルの拡張子にはよく .tar が使われる。
-z オプションを付けてgzipでの圧縮も行う場合は .tar.gz や .tgz が使われる。
基本操作 2015/04/25
## アーカイブ
$ tar cvf tarファイル名 アーカイブ対象ディレクトリ
## 圧縮してアーカイブ
$ tar cvzf tgzファイル名 圧縮対象ディレクトリ
## 展開
$ tar xvf tarファイル名
## 解凍して展開
$ tar xvzf tgzファイル名
## 特定のファイルのみ解凍して展開
$ tar xvzf tgzファイル名 ファイルパス
## アーカイブされているファイルの一覧
$ tar tf tarファイル名
## 圧縮してアーカイブされているファイルの一覧
$ tar tzf tgzファイル名
オプション 2016/04/06
-c- 新しくアーカイブファイルを作成する。たぶんcreateの意味
-f- アーカイブファイル名をパラメータで指定する。これを指定しないと標準入力 または標準出力が使われる
-t- アーカイブファイルに含まれるファイルの一覧を表示する。たぶんlistの意味
-v- 処理の進行しているファイル名を表示する。
-tと併用の場合はタイムスタンプやファイルサイズなども表示する。 -x- アーカイブファイルを展開する。たぶんextractの意味
-z- gzipで圧縮または展開を同時に行う
-z を使う場合は、アーカイブファイルの拡張子として .tar.gz または .tgz がよく使われる。
オプションは先頭のハイフンをとって全部スペースなしでつなげてしまうことができるようで、そのほうがタイプ数が少なくて済むので、普通はそうする。ただし f はアーカイブファイル名の直前である必要があるので、結果的にオプション群の最後に書くことになる。
## 以下の2つは同じ結果になる
$ tar tzf foo.tar.gz
$ tar -t -z -f foo.tar.gz
HOWTO
アーカイブファイルの中のファイル一覧を見るには 2015/12/02
ファイル名のみを一覧で表示させるには
$ tar tf archive.tar.gz
パーミッション、ファイルオーナー、グループ、ファイルサイズ、タイムスタンプも表示するには
$ tar tvf archive.tar.gz
リモートにtarでバックアップ、またはリモートからローカルにtarでバックアップ 2013/08/23
-> サーバにある大量のファイルを tar しながら、ローカルにダウンロードするには
-> ローカルにある大量のファイルを tar しながら、リモートにアップロードするには
findの結果をバックアップ対象にするには 2013/08/24
以下のようにする。
$ find .... -print0 | tar cvzf foo.tar.gz --null -T -
findのオプション -print0 は該当ファイル名をNULL区切りで出力し、
tarのオプション --null -T - は標準入力からアーカイブ対象のファイル名をNULL区切りでパースして取得する。 -T - の2つ目の - は標準入力を意味し、ここにファイル名を書けば、そのファイルからアーカイブ対象のファイル名を取得することになる。
-print0 のハイフンは1つで、 --null のハイフンは2つ。
--null を -T - のあとに置くと、tar: -: file name read contains nul character
というエラーが発生した。
findとtarの間にxargsを使ってしまうと、アーカイブするファイル数が多い場合に
tarが複数回起動されてしまい、すべてのファイルが含まれたアーカイブファイルを作れない。
tarファイルの中にある特定のファイルのみを解凍するには 2015/04/25
最後のパラメータに解凍したいファイル名を渡せばよい。
$ tar xzf logs.tar.gz var/log/httpd/access_log
拡張子 .tar.xz のファイルを解凍・展開するには 2015/05/13
z の代わりに J というオプションを使う。
$ tar xvJf linux-4.0.2.tar.xz