複数のファイルをひとつのファイルにまとめることをアーカイブといいます。
tarコマンドは、指定したファイルや指定したディレクトリ以下のツリーを、テープなどのメディアに
アーカイブしたり、アーカイブデータを展開するコマンドです。
▼dumpコマンドとの使い分け
dumpコマンドがファイルシステム単位でバックアップをとるのに対し、tarコマンドは
任意のディレクトリ以下をアーカイブできるので、システム全体のバックアップは
dumpコマンドで、それ以外のバックアップはtarコマンドで、といった使い分けができます。
tar [オプション] [ファイル名]
オプション | 意味 |
---|---|
c | アーカイブファイルを新規に作成する |
f | 指定されたファイルにアーカイブデータを出力する |
t | アーカイブファイルの内容を表示する |
v | ファイル名のほかにタイムスタンプやアクセス権などの詳細な情報を表示する |
x | アーカイブファイルからファイルを取り出す |
z | アーカイブファイルをgzipで圧縮する(FreeBSD・Linux) |
j | bzip2を通して処理を行う |
X FILE | FILEに記述されたファイル(フォルダ)を除外する。 |
C | 指定したディレクトリにファイルを展開する |
# 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 work work work/a work/a/a.html work/b work/b/b.html work/c work/c/c.html
$ echo b > jogai $ echo c >> jogai $ cat jogai b c
$ tar zcvXf jogai backup.tar.gz x work/ work/a/ work/a/a.html
$ tar jcvf work.tar.gz2 work a work a work/sabun.sh a work/test.rb a work/ch_20060317.txt a work/kr_20060317.txt a work/test.rb.bak a work/seek.sh a work/A a work/serverlist.txt a work/B a work/test.txt a work/a.sh a work/sample01.sh a work/test.php
$ tar jxvf work.tar.gz2 x work x work/sabun.sh x work/test.rb x work/ch_20060317.txt x work/kr_20060317.txt x work/test.rb.bak x work/seek.sh x work/A x work/serverlist.txt x work/B x work/test.txt x work/a.sh x work/sample01.sh x work/test.php
$ ls -al drwxr-xr-x 2 matsui Admin 512 8 13 03:36 work/ -rw-r--r-- 1 matsui users 4900 8 16 11:41 work.tar.gz -rw-r--r-- 1 matsui users 4348 8 16 11:40 work.tar.gz2
$ tar zxvf foo.tgz filename
hogeディレクトリに展開する場合
$ mkdir hoge $ tar zcvfC foo.tar.gz ./hoge
10.10.10.10の/mnt/ を 10.10.10.20の/mnt/ に丸ごとコピー
ssh root@10.10.10.10 tar -C /mnt/ --sparse --one-file-system -zcp --numeric-owner --xattrs . | ssh root@10.10.10.20 tar -xzp -C /mnt/
/mnt/ディレクトリを丸ごと 10.10.10.30にtarで固めてバックアップ
tar -C /mnt/ --sparse --one-file-system -zcp --numeric-owner --xattrs . | ssh root@10.10.10.30 "cat > /backup/backup.tar.gz"