各ファイルの作成、追加、変更、および最後に開かれた時間とともに、ディレクトリとサブディレクトリのファイル内容のリストを作成するにはどうすればよいですか。

各ファイルの作成、追加、変更、および最後に開かれた時間とともに、ディレクトリとサブディレクトリのファイル内容のリストを作成するにはどうすればよいですか。

私はMacを持っており、各ファイルの「作成」、「追加」、「修正」、および「最後に開かれた」日付とともに、特定のディレクトリとそのサブディレクトリにあるすべてのファイルの内容のリストを作成する必要があります。

さまざまなスレッドを見ると、「ls」または「stat」コマンドを使用してデータの作成/追加/変更をインポートする方法がわかりますが、すべてのファイルの最後に開かれた日付情報を再帰的に取得する方法はありません。

答え1

  • 作る:UNIXに含まれている元のファイル属性の1つではありませんが、この属性は今日多くのファイルシステム(MacOS、HFS +に最も関連するものを含む)で利用可能であり、次の最新バージョンのツールからアクセスする方法をls知っstatていますls -U。マンページから)。statB
  • 次へ追加:これ自体は存在しません。ファイルを含むディレクトリの最後の変更時間を使用して、ファイルが追加(作成または移動)、削除(削除または移動)、または名前が変更されたときにディレクトリが最後に変更された時間を見つけることができます。しかし、どちらがあったのかは不明で、最近の出来事に関する情報だけを得ることができます。
  • 修正済みそして最後のアクセス時間: UNIX のファイルの生統計。ほとんどのファイルシステムと基本的に、すべてのツール(ドキュメントで説明されているように、、および使用)ls -uでサポートされstatています。すべてのファイルアクセス時にディスク書き込みを保存するために、最後のアクセスタイムスタンプトレースがオフになっているか、条件付きでオフになることがあります。am

あなたが言及していない別のものがあります。最後のインデックスノードの変更。ファイルの内容ではなく、ファイルメタデータが最後に変更された時期を追跡します。

答え2

あなたはそれを使用することができますstatコマンドはファイルに関する情報をリストします。このコマンドは、ファイルのオペレーティングシステムによって記録された4つのタイムスタンプをすべて一覧表示します。

  • %a:アクセス時間(atime)。ファイルが最後に開かれたか読み取られた時間(例えば、コンテンツの分析や索引付け)。
  • %m:修正時間(mtime)。ファイルの内容が最後に変更された時刻。ファイルを他の場所からコピーまたはダウンロードする場合、コピー時にmtimeが更新されるかどうかは、コピー方法によって異なります。
  • %c:inode 変更時間 (ctime)。この時間は、ファイルの読み取り以外の操作(変更、名前変更、移動、権限変更など)が発生するたびに更新されます。
  • %B:出生時間(生成時間)。これは通常ファイルが作成またはダウンロードされた時間ですが、一部のアプリケーションでは、ファイルが最後に保存された時間を反映することがあります。

と組み合わせることができます。findこのコマンドはファイルを再帰的にリストします。たとえば、現在のディレクトリにあるすべての一般ファイルのタイムスタンプと名前を一覧表示するには、次のようにします。

find . -type f -exec stat -f '%Sa %Sc %Sm %SB %N' {} \;

関連情報