Nの外部記憶

作ったアプリや、作成時の備忘録を書くブログ。やりたいことが多すぎるッ!

【bash】ファイル更新を確認する

参考コード

function check_update_file {


    # get last time
    last_time=`cat ${DATA_FILE_PATH}/${DATA_FILE}`
    
    if [ -z "${last_time}" ];
    then
        ls -og --full-time ${FILE_PATH} | awk '{ print $4,$5 }' > ${DATA_FILE_PATH}/${DATA_FILE}
    fi

    echo "last time = ${last_time}"

    ## check update file
    while :
    do
        if ls ${FILE_PATH} > /dev/null 2>&1
        then
            # get make time
            make_time=`ls -og --full-time ${FILE_PATH} | awk '{ print $4,$5 }'`

            if [ "${last_time}" != "${make_time}" ];
            then
                # set time stamp
                ls -og --full-time ${FILE_PATH} | awk '{ print $4,$5 }' > ${DATA_FILE_PATH}/${DATA_FILE}
                echo "make time = ${make_time}"
                break
            fi
            sleep 60
        fi
    done
}

処理について

  1. すでに作成されているファイルの作成日時を、記録しているファイルから取得
  2. 【ここからループ】ファイルの存在を確認
  3. ファイルの作成日時を取得
  4. 【ループここまで】すでに作成されているファイルの作成日時と直近で取得した作成日時を比較
    →【break】記録ファイルを更新

備考

  • 「対象ファイルは存在するが、記録ファイルに記載がない」場合を顧慮して、1.にて取得値がNULLの場合は、記録ファイルに追記する処理にした。