読者です 読者をやめる 読者になる 読者になる

計算物理屋の研究備忘録

Linux, Cygwin, Mac, zsh, emacs等の使い方、設定などのメモ

tarコマンドでフルパスを使う時の注意点

このようにすると

$ tar zcvf /xxx/yyy/zzz.tar.gz  /aaa/bbb/ccc

/xxx/yyyというディレクトリにzzz.tar.gzを作ってくれる。

この中には/aaa/bbbディレクトリにあるcccというディレクトリが入っていてほしいのだが、この方法だと、解凍・展開するとaaa/bbb/cccという風にaaa/bbbという邪魔なディレクトリがついてくる。

これを回避するためには、-Cオプションを使ってまず目的のディレクトリに移動するようにする

$ tar zcvf /xxx/yyy/zzz.tar.gz -C /aaa/bbb ccc

これで/aaa/bbbに移動して、cccディレクトリだけをアーカイブしてくれる。

ディレクトリをバックアップするシェルスクリプトを作っておいた

#!/bin/sh
DIR1=                           # from
DIR2=                           # DIR1/DIR2
DIR3=                           # to DIR3
YY_MM_DD=                       # date
FNAME=                          # name

#################

DIR1=/aaa/bbb
DIR2=ccc
DIR3=/xxx/yyy

YY_MM_DD=`date +%Y_%m_%d`
FNAME=${YY_MM_DD}_backup.tar.gz

tar zcvf ${DIR3}/${FNAME} -C $DIR1 $DIR2

exit

DIR1: -C オプションで移動するディレクトリ。バックアップしたいディレクトリの親ディレクトリ
DIR2: バックアップしたいディレクトリ
DIR3: 保存先のディレクトリ

date でその日の日付をとってきて、例えば 2013_08_21_backup.tar.gz というファイル名でバックアップするようにしてある