同じ内容でファイルを再作成すると、変更時間が変わりますか?

同じ内容でファイルを再作成すると、変更時間が変わりますか?

Javaプログラムによって定期的に記録されるファイルがあります。
同じ内容で書き換えると、ファイルの変更時間が変わりますか?
そうではないようです。驚くべきことに、新しいコンテンツと既存のコンテンツを比較する方法はありません。

このように、内容が変更されないと、Javaプログラムがファイルに書き込まないことに気づきました。私のせい。しかし、明快な答えを得ることができて嬉しい。

ベストアンサー1

はい、修正時間が変更されます。自分で確認してください。

echo Hello > test
stat test
sleep 2
echo Hello > test
stat test

2つ目はstat最初のものと同じアクセス時間を示していますが(これはファイルが削除され、再生成されなかったことを証明しますが、もちろん望ましい動作に準拠しています>)、修正と変更の時間が更新されました。

これは POSIX によって指定されます。例えば存在するwrite():

正常に完了した後、バイト0より大きい、書く()更新されたファイルの最後のデータ変更と最後のファイル状態の変更タイムスタンプを表示する必要があります。ファイルが通常のファイルの場合は、ファイルモードのS_ISUIDおよびS_ISGIDビットをクリアできます。

おすすめ記事