web-dev-qa-db-ja.com

ファイルのアクセス時間

bash Shellを使用しています。 viエディターでファイルを開き、カーソルを一度も移動せずにファイルを閉じると、ファイルが最後にアクセスされた時間を変更できるはずです。編集者。

しかし、これをファイルで実験したところ、これは起こりませんでした。この場合、最終アクセス時刻は変更されません。私は何かを誤解していますか?

最終アクセス時刻の概念をより明確にし、viエディターがこのタイムスタンプを変更せずにファイルにアクセスする方法を説明してください。

4
Esha

Linuxでは、カーネルはデフォルトでrelatimeオプションを有効にしてファイルシステムをマウントします(詳細は the mountマンページ を参照)。このオプションを使用すると、アクセス時間は次の場合にのみ更新されます:

  • 以前のアクセス時刻が現在の変更時刻または変更時刻よりも前でした(つまり、ファイルのコンテンツまたはメタデータが最後にアクセスされてから変更されている);
  • または、前回のアクセス時間が1日以上前のものです。

これにより、一般的なシステムの使用に関連するディスク書き込みの数が減り、それに依存する一部のプログラム(特に、特定のメールクライアント)のアクセス情報が保持され、ファイルの粒度が非常に粗いにもかかわらず、アクセス時間の追跡が可能になります。変わりません。

言い換えると、relatimeマウントされたファイルシステムでは、アクセス時刻は正確なタイムスタンプではなく、インジケータです。これにより、ファイルが最後に変更されてからアクセスされたかどうか、または特定の期間内に1日の粒度でアクセスされた。

この動作を制御するために、いくつかのオプションを使用できます。リンクされたマンページを参照、またはman mount詳細については、システム上で。

9
Stephen Kitt