ファイルのスナップショットを作成する
#!/bin/sh #snapshot.sh [-d 作成先ディレクトリ] [-e] ファイル名 [ファイル名...] #-e は過去のスナップショットを削除する dir="." daytime=`date +%y%m%d_%H%M%S` while [ -n "$1" ]; do case $1 in -d) dir=$2 shift 2 ;; -e) erase=1 shift ;; *) basename=`echo "$1" | sed 's/.*\///'` cp -a $1 $dir/$basename-snapshot-$daytime #スナップショットの作成に成功した場合のみ過去のスナップショットを削除 if [ "$?" = "0" -a "$erase" = 1 ]; then rm -rf $dir/$basename.snapshot-* fi mv $dir/$basename-snapshot-$daytime $dir/$basename.snapshot-$daytime shift ;; esac done
$ ./snapshot.sh a $ ls a.snapshot-100215_132242