Unixコマンド/tar のバックアップ(No.2)


tar

機能

複数のファイルをひとつのファイルにまとめることをアーカイブといいます。
tarコマンドは、指定したファイルや指定したディレクトリ以下のツリーを、テープなどのメディアに
アーカイブしたり、アーカイブデータを展開するコマンドです。

▼dumpコマンドとの使い分け
dumpコマンドがファイルシステム単位でバックアップをとるのに対し、tarコマンドは
任意のディレクトリ以下をアーカイブできるので、システム全体のバックアップは
dumpコマンドで、それ以外のバックアップはtarコマンドで、といった使い分けができます。

構文

tar [オプション] [ファイル名]

オプション

c          アーカイブファイルを新規に作成する
f          指定されたファイルにアーカイブデータを出力する
t          アーカイブファイルの内容を表示する
v          ファイル名のほかにタイムスタンプやアクセス権などの詳細な情報を表示する
x          アーカイブファイルからファイルを取り出す
z          アーカイブファイルをgzipで圧縮する(FreeBSD・Linux)
X FILE     FILEに記述されたファイル(フォルダ)を除外する。

コマンド例

▼/etcディレクトリ以下のファイルをフロッピーディスク(/dev/fd0)にアーカイブする

# cd /etc
# tar cf /dev/fd0 ./*

▼アーカイブ内のファイル名を表示する

# tar tf /dev/fd0 |head
etc/X11/
etc/aliases
etc/amd.map
etc/antivir.conf
etc/apmd.conf
etc/auth.conf
etc/avguard.conf
etc/crontab
etc/csh.cshrc
etc/csh.login

▼アーカイブ内のファイル名とファイル属性を表示する

root@vaio# tar tfv /dev/fd0 |head
drwxr-xr-x root/wheel        0  5 26 06:27 2004 etc/X11/
lrwxrwxrwx root/wheel        0  9 21 23:27 2004 etc/aliases -> mail/aliases
-rw-r--r-- root/wheel      208  5 26 06:28 2004 etc/amd.map
-rw-rw-r-- root/antivir   3623 11 10 07:38 2004 etc/antivir.conf
-rw-r--r-- root/wheel     1167  5 26 06:28 2004 etc/apmd.conf
-rw-r--r-- root/wheel      272  5 26 06:28 2004 etc/auth.conf
-rw-rw-r-- root/antivir   3730 11 10 07:31 2004 etc/avguard.conf
-rw-r--r-- root/wheel      637  5 26 06:28 2004 etc/crontab
-rw-r--r-- root/wheel      108  5 26 06:28 2004 etc/csh.cshrc
-rw-r--r-- root/wheel      486  5 26 06:28 2004 etc/csh.login

▼アーカイブデータからファイルを取り出す

# tar xf /dev/fd0

■特定フォルダを除外する

$ find x
x
x/a
x/a/a.html
x/b
x/b/b.html
x/c
x/c/c.html
$ echo b > exclude
$ echo c >> exclude
$ cat exclude
b
c
$
$ tar zcvXf exclude backup.tar.gz x
x/
x/a/
x/a/a.html
$