質問: 多くのファイルの作成時間と最終変更時間を取得する最速の方法 与えられた ディレクトリ このディレクトリに直接ファイルのサブセットを生成するshパターン(* .logなど) ファイル名を指定すると、shパターン。 パターンでフィルタリングされた各ファイルを取得するための最速の方法(ksh単位)は何ですか? その名前 最後に変更された日時(つまり、テキストが追加された) 作成された日時(ディレクトリに作成されたと仮定して、アクセスしたとき) 理想的には、次の両方で機能します。 aix 6100-04-03-1009 linux 2.6.18 sunos 5.10
回答: posixファイルシステムノードには通常、次の3つの時間属性があります。 atime(アクセス時間)-ファイルが最後に読み取られたのはいつですか mtime(変更時刻)-最後に書き込まれたのはいつですか。 ctime(変更時間)-iノード(メタデータ)が変更されたのはいつですか。 ctime属性は、作成時間と誤解されることが多く、場合によっては、人々を混乱させる傾向があります。posixシェルには、これら3つの属性を抽出する標準的な方法がなく、lsコマンドに依存します。 _ls -l $file_は、デフォルトで変更時間を示します。 _ls -lc $file_はctimeを示しています _ls -lu $file_はatimeを示しています gnu/linuxシステムを使用している場合は、一貫した出力のために_ls --time-style=full-iso_または別のiso形式を使用することをお勧めします。perlおよびその他のスクリプト言語では、ファイルにアクセスしてその属性にアクセスする方が簡単です stat() 。 perlには、ファイルシステムに対してmtime、atime、およびctimeを返す_-m_、_-a_、および_-c_演算子もあります。オブジェクト。ただし、時間オフセットに注意してください。 perlは、プロセスの開始時間に関連する時間を報告する傾向があります。