もちろん、マニュアルの数行も読みました。私はまだ具体的な内容に興味があります。たとえば、stat / some_files
このコマンドは以下を印刷します。
access 2024 (now)
modified 2022
changeded 2023
created 2023
たとえば、プログラムコンポーネント、ドライバ、ライブラリ、スクリプトなどです。私が興味を持っているのは、2022年のリビジョンが何を意味するのかということです。これは、パッケージをダウンロードした後にそのディレクトリに解凍したり、ディスクに書き込むことがまさにこの日時で行われることを意味しますか?この文脈で「作る」とは、今から1年後に何を意味するのでしょうか。
答え1
私はあなたが既に基本を知っていると思います。
- アクセス時間は、ファイルへの最新のアクセスを反映します(ファイルシステムで粒度が異なるか
relatime
使用されている場合はまったくありません)。noatime
- 変更時間は、ファイルの内容が最後に変更された時間を反映します。
- 変更時間は、ファイルメタデータの最新の変更を反映します。
- 作成時間は、ファイルシステムでファイルが生成された時間を反映します。
あなたのケースにはもう一つ重要な微妙さがあります。アクセスと修正時間変更することができ、変更および作成時間はファイルシステムによって設定されます。特に、修正時間は通常アーカイブに保存され、アーカイブ抽出時に復元されます。したがって、たとえば、配布パッケージをインストールする場合、埋め込みファイルにはパッケージがインストールされた時間(ファイルが作成された時間)に対応する生成タイムスタンプがあります。あなたのシステムで)、アーカイブに保存されたタイムスタンプに対応する修正タイムスタンプ(通常はパッケージがビルドされた時間)です。
したがって、アクセス時間と修正時間があいまいです。しなければならないファイルライフサイクルの特定のイベントを反映しますが、更新(アクセス時間について)をスキップするか、特定のイベントとは無関係に更新することができます。任意の値に設定できるため、時間順は保証されません。
したがって、2022年にビルドされたパッケージで2023年にインストールされ、2024年に最後にアクセスされたファイルは最初に生成(ファイルシステムがそれをサポートする場合)を持ち、最後に変更されたタイムスタンプは2023年、修正タイムスタンプは2022年、最後のアクセスタイムスタンプは2022年です。 。 2024.生成タイムスタンプを除いて、他のすべてのタイムスタンプは、ファイルおよび/またはインクルードディレクトリへの書き込みアクセス権を持つ人が更新できます。
答え2
ソフトウェアが配布用にパッケージ化されている場合(Linuxでは通常*.rpm
または*.deb
パッケージとして、または*.tar.gz
同じアーカイブでも*.zip
)、これらのパッケージング方法は通常、元のシステムでファイルの変更時間を保存し、インストール時に再現します。これらの元の修正タイムスタンプ。アーカイブをキャンセルします。
場合によっては、配布用ソフトウェアのパッケージングソフトウェアは、特定のバージョンのソフトウェアに属するすべてのファイルの修正タイムスタンプを既知の値に調整して、バグレポートでファイルバージョンの識別を簡素化したり、特定のバージョンのリリース日を単純に反映したりすることがあります。 。
あなたは期待することができます作るタイムスタンプも保存されますが、生成時間はPOSIX仕様の必須部分ではありません。一部のUnixファイルシステムはファイルの作成時間をまったく追跡しないため、ファイルの内容の変更時間を保存することは、ファイルアーカイブ手順の最も重要な部分の1つと見なされます。 。
access 2024 (now)
modified 2022
changed 2023
created 2023
このファイルがパッケージに属している場合、そのファイルは開発者によって最後に変更されたか、2022年リリース用にパッケージ化されたと予想されます。修正時間はこれを反映します。
これは、2023年(生成時間とメタデータ変更時間で表される)にシステムにインストールされました。この時点で、インストールプロセスは、ファイルが2022年のシステムに技術的に存在しなくても、そのファイルの元のシステム変更時刻である2022年をシステムに再現します。
修正時間<生成時間なので、ファイルの内容が別のシステムで生成された後、あなたのシステムに転送されました。
作成時間は基本的にメタデータ変更時間と同じで、変更時間は生成時間以下であるため、ファイルとそのメタデータ(所有権、権限、属性)がどのような場合でも変更されていないことが明らかになります。創造後のやり方。システムにインストールします。