変更日やアクセス日ではなく、特定のファイルの作成日を知りたい。
ls -ltrhで試しました およびstat filename 。
承認された回答:
stat -c '%w' file 作成時間を保存するファイルシステム。
Linuxでは、これにはcoreutilsが必要であることに注意してください 8.31、glibc 2.28およびカーネルバージョン4.11以降。
POSIX標準では、ファイルごとに保存される3つの異なるタイムスタンプ、つまり、最後のデータアクセスの時刻、最後のデータ変更の時刻、およびファイルのステータスが最後に変更された時刻のみが定義されています。
ext4、Btrfs、XFS(v5以降)、JFSなどの最新のLinuxファイルシステムはファイル作成時間(別名誕生時間)を保存しますが、問題のフィールドには異なる名前を使用します(crtime ext4 / XFSでは、otime BtrfsおよびJFSで)。 Linuxは、カーネルバージョン4.11以降、それをサポートするファイルシステムのファイル誕生時刻を取得するためのstatx(2)システムコールインターフェイスを提供します。 (したがって、作成時のサポートがファイルシステムに追加された場合でも、XFS v5など、そのファイルシステムバージョンの公称サポートを追加した後でも、一部のデプロイされたカーネルはすぐにはサポートしません。)
CraigSandersとMohsenPahlevanzadehが指摘したように、stat %wをサポートします および%W coreutilsより前のファイルの誕生時刻(人間が読める形式とEpochからの秒数)を表示するための形式指定子 バージョン8.31。ただし、coreutils stat statx()を使用します バージョン8.31以降のみの出生時刻を取得するために利用可能なシステムコール。coreutilsより前 バージョン8.31stat get_stat_birthtime()を介して出生時刻にアクセスしました gnulibによって提供されます(lib/stat-time.h内) )、st_birthtimeから出生時刻を取得します およびst_birthtimensec statのフィールド stat()によって返される構造 システムコール。たとえば、BSDシステム(および拡張OS X)はst_birthtimeを提供します stat経由 、Linuxはしません。これが、 stat -c '%w' fileの理由です。 -を出力します (不明な作成時刻を示す)coreutilsより前のLinux 作成時間を内部に保存するファイルシステムの場合でも8.31。
Stephane Chazelasが指摘しているように、ntfs-3gなどの一部のファイルシステムは、拡張ファイル属性を介してファイルの作成時間を公開します。