GNU/Linux >> Linux の 問題 >  >> Linux

Linux –ファイルの作成日を見つける方法は?

変更日やアクセス日ではなく、特定のファイルの作成日を知りたい。

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などの一部のファイルシステムは、拡張ファイル属性を介してファイルの作成時間を公開します。


Linux
  1. Linuxで変更日時に基づいてファイルを検索およびソートする方法

  2. LinuxでPythonを使用してファイル作成時間を取得する

  3. Linuxでどのタイムゾーンを確認する方法は?

  1. Linuxでファイルを見つける方法

  2. Linux – Ntfs論理ボリューム上のファイルの作成日を取得する方法は?

  3. Bash/Debianでファイル作成日時を取得するには?

  1. Linuxでファイルを移動する方法

  2. Linuxでファイルを見つける方法

  3. Linuxで特定の日付より古いファイルを削除するにはどうすればよいですか?