ファイルの最後の変更日と現在のシェルスクリプトを使用した日付との間の日付差を計算します。

ファイルの最後の変更日と現在のシェルスクリプトを使用した日付との間の日付差を計算します。

ログファイルが最後に更新されてから経過した時間を計算しようとしています。

次のコマンドを使用していると思います。

lastUpdate=$(date -r myLogFile.log)
now=$(date)

どのようにこれを除いて経過した秒の結果を得ることができますか?

答え1

lastUpdate="$(stat -c %Y myLogFile.log)"
now="$(date +%s)"
let diff="${now}-${lastUpdate}"

答え2

2つの出力を比較して、現在と変更された日付の間の秒数を取得します。

stat -c %Y file  vs date +%s

答え3

ほぼ全部来ました!date計算しやすい形式を使用するようにしてください。

lastUpdate=$(date -r myLogFile.log +%s)
now=$(date +%s)
file_age=$((now - lastUpdate))

答え4

短い冗談:

stat -c %Y /path/to/file | echo `expr $(date +%s) - $(cat)`

関連情報