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


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
  • 特定フォルダを除外する
    workフォルダにa,b,cというフォルダがあるとする
    $ find work
    work
    work/a
    work/a/a.html
    work/b
    work/b/b.html
    work/c
    work/c/c.html
    jogaiとうファイルをに除外したいフォルダ名を記述しておく。
    $ echo b > jogai
    $ echo c >> jogai
    $ cat jogai
    b
    c
    jogaiファイルで指定したフォルダを除いて圧縮できる。
    $ tar zcvXf jogai backup.tar.gz x
    work/
    work/a/
    work/a/a.html