web-dev-qa-db-ja.com

UNIXディレクトリがタイムスタンプを変更するのはいつですか

「タッチ」を使用してファイルのタイムスタンプを更新しましたが、親ディレクトリのタイムスタンプは変更されませんでした。しかし、(予想通り)親ディレクトリ内に新しいファイルを作成すると、ディレクトリのタイムスタンプが変更されました。

UNIXのようなオペレーティングシステム(特にAIX)は、ディレクトリのタイムスタンプを更新するタイミングを決定するためにどのような基準を使用しますか?

46
Scrubbie

タイムスタンプは、ディレクトリを表すデータが変更されると更新されます。ディレクトリDのサブディレクトリを変更しても、Dの表現は何も変更されません。これは、Dがポイントするのはサブディレクトリであり、内部にあるものではないためです。一方、Dでファイルを作成すると、Dを表すディスク上のデータブロックが変更されます。

31
Pascal Cuoq

ディレクトリ自体が変更されると、ディレクトリのタイムスタンプが変更されます。ディレクトリには、とりわけ、ディレクトリ内のファイルのiノードのリストが含まれているため、ファイルを追加または削除してディレクトリのコンテンツを変更すると、ディレクトリのタイムスタンプが更新されます。

16
Steve Weet

Statコマンドを使用して、ファイル/ディレクトリの変更時刻、作成時刻などを見つけることができます。 https://linux.die.net/man/2/stat を参照してください

記事の状態:ディレクトリのst_mtimeは、そのディレクトリ内のファイルの作成または削除によって変更されます。 st_mtimeフィールドは、所有者、グループ、ハードリンクカウント、またはモードを変更しても変更されません。

1
Kisalay