web-dev-qa-db-ja.com

外付けハードドライブ:「最後にアクセスした日付」ファイル?

私の外付けハードドライブ上のファイルが最後に開かれたときを把握する方法があるかどうかを把握しようとしています。 Seagate Backup Plusを使用していますが、MacとPCの両方に対応しています。ただし、スペースを節約するために、これらのドライブでは「アクセスされた」日付の更新は通常デフォルトでオフになっていることも読んだ。 Macで確認したところ、「最後に開いた日付」で表示された日付は、ファイルを最後に開いたとき(テストケースとして実行したとき)ではなく、ファイルが作成されたときに表示されたためです。誰か提案はありますか?よろしくお願いします。

4
HelenCC

スペースを節約するためにオフにするのではなく、多数のファイルを読み取るときに不必要な量の書き込みが発生するためです。概説されているように、WindowsとLinuxの両方でさまざまなタイムスタンプエントリを表示できます この回答では 。 WindowsまたはLinuxを使用していると想定しています。

NTFSのウィンドウ

Windowsはファイルのタイムスタンプに[〜#〜] mace [〜#〜]を使用します。つまり、[〜#〜] m [〜#〜 ]odify、[〜#〜] a [〜#〜]ccess、[〜#〜] c [〜#〜]reate、および[〜#〜] e [〜#〜]ntryが変更されました。 Vistaシステム以降では、 NtfsDisableLastAccessUpdate のデフォルトのレジストリ値1により、アクセス時間は デフォルトでは無効 です。この場合、アクセス時刻はファイルが作成または変更されたときにのみ更新されるため、最終アクセスの日付を決定するための信頼性が低くなります。

レジストリ値を切り替えるか、次のコマンドを使用して、アクセス時間を再度有効にできます。

_fsutil behavior set disablelastaccess 0
_

Linuxとext4

Linuxは、ファイルのタイムスタンプに[〜#〜] mac [〜#〜]を使用します。つまり、[〜#〜] m [〜#〜 ]odify、および[〜#〜] a [〜#〜]ccess、[〜#〜] c [〜#〜]hange、しばしばそれぞれmtime、atime、ctimeと呼ばれます。ここでは、mtimeとctimeの違いはわずかです。 mtimeはファイルのコンテンツが変更された場合にのみ更新されますが、ctimeはコンテンツまたはメタデータが変更された場合に更新されます。多くのLinuxシステムは、noatimeと呼ばれるマウントオプションを使用して、アクセス時間の更新を無効にします。 atimeは、mtimeまたはctimeが変更されたときにのみ更新されます。共通のrelatimeマウントオプションもあります。これは、以前のアクセスが現在のctimeまたはmtimeよりも前の場合にのみatimeを更新します。アクセスに関するいくつかの情報を保持しながら、不要なディスク書き込みを減らすために使用されます。

些細なことは、最近のext4ファイルシステムには、デフォルトではユーザー空間で使用できない2つのタイムスタンプがあります。crtime(作成時間)とdtime(削除時間)です。 dtimeは明らかに削除されたiノードにのみ存在し、明確な目的を持っていません。また、レガシーの理由でcrtimeは表示されません。

次のコマンドを使用して、アクセス時間を一時的に再度有効にできます。

_mount -o remount,strictatime /path/to/mountpoint
_

永続的な変更には編集が必要です fstab(5)

2
forest