(7つの回答)
7年前に閉鎖されました。
ファイルがいつ作成されたかを確認するにはどうすればよいですか。マニュアルページを見ました
ls -lc
ファイルステータスの最終変更用です
ls -lu
アクセス時間について
ls -l </ code> 最後に変更されたのはいつか正確に示されていませんか?
これらを試しましたが、ファイルが作成された時間がわかりません。
承認された回答:
OS / XまたはFreeBSDでは、これは-Uオプションです。 Linuxは現在、ほとんどのネイティブファイルシステムに誕生/作成時間を保存していますが、それを取得するためのAPIはまだありません(2018編集 :カーネル4.11以降、 statx()
が追加されました。 システムコール、およびglibc 2.28以降はそのlibcラッパー、coreutils8.31以降はGNUstat
表示でき、(2021編集 )8.32以降GNU ls
-time =birth
で表示できます 。
ext4ファイルシステムでは、debugfsを使用して取得できます:
$ sudo debugfs /dev/some/fs
stat /some/file
[...]
crtime: 0x53208d7a:9045625c -- Wed Mar 12 16:38:18 2014
[...]
(ここで / some / file
そのファイルシステム内のパスです)
NTFSファイルシステムの場合、およびntfs-3gを使用してマウントしていると仮定すると、「NTFS論理ボリューム上のファイルの作成日を取得するにはどうすればよいですか?」を参照してください。
最近十分な数のLinuxシステムがある場合は、 xfs_io
を使用できます。 のstatx
新しいstatx()
を呼び出すサブコマンド システムコールと出生時刻の取得:
$ TZ=UTC0 xfs_io -c 'statx -v' /some/file
[...]
stat.btime = Thu Feb 7 17:11:20 2019
[...]
(ここでは、 TZ =UTC0
でUTC時間を使用しています そうしないと、UTCオフセットが出力されないため、日付があいまいになります)。またはstatx-r
これにより、ナノ秒の部分とより簡単に解析できる時間が得られます:
$ xfs_io -c 'statx -r' /some/file
[...]
stat.btime.tv_sec = 1549559480
stat.btime.tv_nsec = 964691587
[...]
GNU stat
を使用 glibc 2.28以降およびカーネル4.11以降を搭載したシステムでは8.31以降:
$ stat /some/file | grep Birth:
Birth: 2018-05-24 16:27:28.415875403 +0100
$ stat -c '%.9W %w' /some/file
1527175648.415875403 2018-05-24 16:27:28.415875403 +0100
GNU ls
を使用 glibc 2.28以降およびカーネル4.11以降を搭載したシステムでは8.32以降:
$ ls -l --time=birth --full-time /some/file
-rw-r--r-- 1 stephane stephane 2333836 2018-05-24 16:27:28.415875403 +0100 /some/file
従来、Unixは作成時間を保存していませんでした。
その値は、あなたが思っているよりも意味が少ないかもしれないことに注意してください。
変更時間 そのファイル内のデータの経過時間、アクセス時間を反映します 最後にアクセスしたときのinode変更時間 たとえば、そのファイルについて何も変更されていないことがわかっているため、ソフトウェアのバックアップに非常に役立ちます(ディレクトリコンポーネントのctimeを確認できるフルパスを除く)。
関連:bundleconfigファイルに問題がありますか?作成時間 iノードが出現したとき(リンクカウントが0から1になっている場合、そのiノードは前の人生で割り当てられて削除された可能性があります)、そのファイルに関連付けられているデータの経過時間を反映していません(データはファイルが作成された後に書き込まれます)、ファイルがそのパスによってあるかどうかはわかりません。 その時点で存在していました(私たちが見ているファイルは、別のパスで作成され、後でリンクまたは移動された可能性があります)。