変更日やアクセス日ではなく、特定のファイルの作成日を知りたい。
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などの一部のファイルシステムは、拡張ファイル属性を介してファイルの作成時間を公開します。