あるフォルダからある名前のファイルを見つけて、それが一週間以上前に作られたものであればそれらを削除し、削除したというメッセージをログに出します。そうでなければ削除するファイルがないメッセージをログに出すという機能をシェルスクリプトで書きたく、以下のように書きましたが。これだと$?変数の値がファイルが見つからなくても0がセットされ、"INFO"date +"%Y-%m-%d %H:%M:%S.%3N"
"deleted old file!!"のメッセージが出てしまいます。
findコマンドでファイルが見つからなかった場合に$?変数に異常終了の値をセットすることはできないのでしょうか。またそうであれば、何かいい方法があれば教えていただきたいです。
find ${FOLDER} -regex '^.*/FILE_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].csv$' -mtime +7 if [ $? -eq 0 ]; then find ${FOLDER} -regex '^.*/FILE_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].csv$' -mtime +7 -delete echo "INFO"`date +"%Y-%m-%d %H:%M:%S.%3N"`"deleted old file!!" >> $LOG 2>&1 else echo "INFO"`date +"%Y-%m-%d %H:%M:%S.%3N"`"There is no old file to delete" >> $LOG 2>&1 fi

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/30 11:46