ファイルタイムスタンプ間の関係

ファイルタイムスタンプ間の関係

私が正しい場合:

  • atimeファイルが最後に読み取りまたはアクセスされた時間。

  • mtimeファイルの内容が最後に変更された時刻。

  • ctimeファイルの inode が最後に変更された時刻です。

質問:

  1. ファイルの内容がinodeの外部に保存されている場合、内容を変更するとmtimeは現在に変更されますが、ctimeとatimeは現在に変更されますか?

  2. inodeに保存されているファイル属性を変更すると、ctimeは現在に変更されますが、mtimeとatimeは現在に変更されますか?

  3. ファイルに関連するコンテンツ(コンテンツ、属性、またはinodeなど)を変更すると、時間も変わりますか?

ベストアンサー1

@Celadaが言ったように、これはテストするのが本当に簡単です。

ctimeただし、これがinode情報が最後に変更されたときに注意してください(inode番号は変更されていません)。

だから:

  1. ファイルの内容がinodeの外部に保存されている場合、内容を変更するとmtimeは現在に変更されますが、ctimeとatimeは現在に変更されますか?

何かを変更すると、mtime変更されるだけでなく、ctimeファイルのタイムスタンプ(およびサイズも可能)が更新され、その情報がinodeに保存されるために変更されます。

また、これがテキストファイルであると仮定し、次をvi使用して内容を変更します。atimevi

例:

$ touch file1

$ stat file1
    Access: 2015-05-06 19:11:41.887622158 +0200
    Modify: 2015-05-06 19:11:41.887622158 +0200
    Change: 2015-05-06 19:11:41.887622158 +0200

$ echo "hello" >> file1

$ stat file1
    Access: 2015-05-06 19:11:41.887622158 +0200
    Modify: 2015-05-06 19:12:27.816047883 +0200
    Change: 2015-05-06 19:12:27.816047883 +0200
  1. inodeに保存されているファイル属性を変更すると、ctimeは現在に変更されますが、mtimeとatimeは現在に変更されますか?

ファイルの属性のみを変更すると、inodeに保存されている情報のみが変更されるため、その情報のみがctime変更されます。

$ stat file2
Access: 2015-05-06 19:28:09.378880724 +0200
Modify: 2015-05-06 19:28:09.378880724 +0200
Change: 2015-05-06 19:28:09.378880724 +0200

$ chmod 700 file2

$ stat file2
Access: 2015-05-06 19:28:09.378880724 +0200
Modify: 2015-05-06 19:28:09.378880724 +0200
Change: 2015-05-06 19:30:24.679022346 +0200
  1. ファイルに関連するコンテンツ(コンテンツ、属性、またはinodeなど)を変更すると、時間も変わりますか?

最初の質問で述べたように、この情報を変更するためにファイルを読む必要がない限り、情報はatime変更されません。

おすすめ記事