コマンド実行時にバックアップを取る
#!/bin/sh #backup.sh コマンド(引数を含む) allarg=$* daytime=`date +%y%m%d_%H%M%S` shift #バックアップ処理 while [ -n "$1" ]; do if [ -f $1 ]; then cp -i $1 $1.~$daytime fi shift done #コマンドを実行 $allarg #allargの値を$1,$2...に戻す set -- $allarg shift #バックアップファイルを削除する処理 while [ -n "$1" ]; do if [ -f $1.~$daytime ]; then rm -i $1.~$daytime fi shift done
$ ./backup.sh vi autogz.sh rm: remove 通常ファイル `autogz.sh.~100215_191351'? no $ ls autogz.sh autogz.sh.~100215_191351