Linux ファイルのタイムスタンプの説明: atime、mtime、および ctime
「変更」が「修正」を意味しないのはどのような場合ですか? Linux ファイルのタイムスタンプについて話すとき。このガイドでは、システムがそれらを更新する方法と、それらを自分で変更する方法について説明します。
atime、mtime、ctimeの違い
すべての Linux ファイルには、アクセス タイムスタンプ (atime)、変更されたタイムスタンプ (mtime)、および変更されたタイムスタンプ (ctime) の 3 つのタイムスタンプがあります。
アクセス タイムスタンプは、ファイルが最後に読み取られた時刻です。これは、誰かがプログラムを使用してファイルの内容を表示したり、ファイルから値を読み取ったりしたことを意味します。ファイルには何も変更または追加されていません。データは参照されますが、変更されません。
変更されたタイムスタンプは、ファイルの内容が最後に変更された時間を示します。プログラムまたはプロセスがファイルを編集または操作します。 「変更された」とは、ファイル内の何かが変更または削除されたか、新しいデータが追加されたことを意味します。
変更されたタイムスタンプは、ファイルの内容に加えられた変更を示すものではありません。むしろ、ファイルに関連するメタデータが変更されたときです。たとえば、ファイルのアクセス許可を変更すると、変更されたタイムスタンプが更新されます。
標準の Linux ext4 ファイル システムも、内部ファイル システム構造内にファイル作成タイムスタンプ用のスペースを割り当てますが、これはまだ実装されていません。場合によっては、このタイムスタンプが埋められている場合もありますが、その値は信頼できません。
詳細なタイムスタンプ
Linux のタイムスタンプには、日付と時刻の代わりに数値が含まれます。この数字は前の秒数です Unix時代、これは 00 年 00 月 00 日の深夜 (1:1970:XNUMX) でした。 協定世界時 (UTC)。 Linux タイムスタンプではうるう秒は無視されるため、リアルタイムとはまったく異なります。
Linux はタイムスタンプを表示する必要がある場合、秒数を日付と時刻に変換します。これにより、人間が理解しやすくなります。コンピュータがファイルを表示している場所とタイムゾーンにより、コンピュータは秒数を日付と時刻に変換するように指示されます。また、月が正しい言語で表示されていることも保証されます。
では、タイムスタンプには何秒まで保存できるのでしょうか?たくさん – 正確には 2,147,483,647 です。これはかなりの数ですが、十分ですか?これを Unix 時代に追加して日付と時刻に変換すると、19 年 2038 月 03 日火曜日、午前 14:07:XNUMX になります。それまでに、タイムスタンプ用に別のシステムが必要になります。
タイムスタンプを表示する
以下に示すように、-l (longlist) オプションを ls とともに使用すると、 変更されたタイムスタンプを確認できます。
ls -l dp.c
アクセス タイムスタンプを確認したい場合は、次のように -lu (access-time) オプションを使用します。
ls -lu dp.c
最後に、変更のタイムスタンプを確認するには、-lc (変更時刻) オプションを使用します。次のように書きます。
ls -lc dp.c