Bashはファイル/ディレクトリの「追加日」を読むことができますか?

Bashはファイル/ディレクトリの「追加日」を読むことができますか?

あなたのプログラムはstatアクセス、修正、変更を見ることができますが、macOSのFinderには「追加日」フィールドがあります。端末に表示されるファイルやディレクトリの「追加日」を取得できますか?たとえば、stat変更された日付を表示できますか?

答え1

一部の候補者には以下が含まれます。ファイル時間はメタデータに公開されmdls到着予定時間DアタSt".-rawこのオプションと組み合わせて使用​​すると、出力にmdlsNUL 文字で区切られたフィールドが含まれます。たとえば、次のようになります。

# The creation date which should not change.
mdls -raw -name kMDItemFSCreationDate $filename

コマンドはstat異なる動作をします。このコマンドを使用する2つのシェルの4つのバージョンの結果stat -f $filenameは次のとおりです。

  1. /usr/local/bin/zsh(5.7.1 Homebrew経由)stat: missing file descriptor
  2. /usr/local/bin/bash(5.0.2(1)Homebrew経由)testing.txt
  3. /bin/zsh(macOS 5.3に含まれています)ビルドstat: missing file descriptor
  4. /bin/bash(macOSに含まれている3.2.57(1)はtesting.txt

ただし、フルパスを使用すると、両方のシェルのstatすべてのバージョンで期待どおりにコマンドが完了します。検索されたすべての時間を生成する例statは次のとおりです。

/usr/bin/stat -f "Access (atime): %Sa%nModify (mtime): %Sm%nChange (ctime): %Sc%nBirth  (Btime): %SB" testing.txt

このコマンドは、上記のコマンドの次の結果のような出力を生成します。

Access (atime): Feb 21 10:46:41 2019
Modify (mtime): Feb 21 10:46:21 2019
Change (ctime): Feb 21 10:46:21 2019
Birth  (Btime): Feb 21 10:22:17 2019

これは興味深い質問であり、これらの違いが発生する理由についてもっと知りたいです。

関連情報