
私が正しい場合:
atime
ファイルが最後に読み取りまたはアクセスされた時間。mtime
ファイルの内容が最後に変更された時刻。ctime
ファイルの inode が最後に変更された時刻です。
質問:
ファイルの内容がinodeの外部に保存されている場合、内容を変更するとmtimeは現在に変更されますが、ctimeとatimeは現在に変更されますか?
inodeに保存されているファイル属性を変更すると、ctimeは現在に変更されますが、mtimeとatimeは現在に変更されますか?
ファイルに関連するコンテンツ(コンテンツ、属性、またはinodeなど)を変更すると、時間も変わりますか?
答え1
@Celadaが言ったように、これはテストするのが本当に簡単です。
ctime
ただし、これがinode情報が最後に変更されたときに注意してください(inode番号は変更されていません)。
だから:
- ファイルの内容がinodeの外部に保存されている場合、内容を変更するとmtimeは現在に変更されますが、ctimeとatimeは現在に変更されますか?
何かを変更すると、mtime
変更されるだけでなく、ctime
ファイルのタイムスタンプ(およびサイズも可能)が更新され、その情報がinodeに保存されるために変更されます。
また、これがテキストファイルであると仮定し、次をvi
使用して内容を変更します。atime
vi
例:
$ 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
- 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
- ファイルに関連するコンテンツ(コンテンツ、属性、またはinodeなど)を変更すると、時間も変わりますか?
最初の質問で述べたように、この情報を変更するためにファイルを読む必要がない限り、情報はatime
変更されません。
答え2
2つの文が必要です。
atime
ファイルを読んだり、開いたり、タッチしたときにのみ変更されます。ctime
ファイルの内容が変更されると変更されます。
これを念頭に置いて、あなたの質問に簡単に答えることができます。
- ファイルの内容がinodeの外部に保存されている場合、内容を変更するとmtimeは現在に変更されますが、ctimeとatimeは現在に変更されますか?
ctime
代わりに変更されますatime
。
- inodeに保存されているファイル属性を変更すると、ctimeは現在に変更されますが、mtimeとatimeは現在に変更されますか?
いいえ、変わらないmtime
とatime
- ファイルに関連するコンテンツ(コンテンツ、属性、またはinodeなど)を変更すると、時間も変わりますか?いいえ、
atime
ファイルを読んだり、開いたり、タッチしたときにのみ変更されます。
覚えておくべきこと:
atime
変わった時のみ読む、開いているまたは触れる文書。ctime
mtime
更新されたものと同じように更新されますmtime
。- 変化は変わる
ctime
かもしれませんし、変わらないかもしれませんし、mtime
変わらないかもしれませんatime
。