バックアップコマンドについてのメモ
√になっているときに良く使う。viのオプションを活用すべきという気もするけど(汗
ピリオドでない接頭辞(_BK)をつけるのは、前のバージョンがどういうものか、「lsコマンドのレベルで」(笑い)意識していたいから。
rsyncなどでは、この接頭辞でexcludeするようにしている。
#!/bin/bash filepathname=$1 dn=`dirname $filepathname` bn=`basename $filepathname` YMD=`stat -c %y $filepathname | awk '{print $1}' | awk -F- '{print ($1 % 10) $2 $3}'` for i in $(seq 1 9) do if [ "$dn" = "" ] then target="_BK-${YMD}-${i}_${bn}" else target="$dn/_BK-${YMD}-${i}_${bn}" fi if [ ! -f $target ] then cp $filepathname $target break fi done
あ、ここに貼り付けようとして、編集してたら、コードのバグ見つけた(笑
直さないとな(汗
ところで、いつも気持ち悪いのは、bashでは文字列が等しいかチェックする演算子が'='でも'=='でも動作すること。bashのmanでは
string1 == string2
True if the strings are equal. = may be used in place of == for
strict POSIX compliance.
ということになっている。へーそーですか、'='はPOSIX準拠なんですか。
ちなみにtestコマンド([]ともいう)のmanでは、'='しか出てこない。(CentOS5の話)