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

ファイルのタイムスタンプ、変更時刻、作成時刻

3 種類の「タイムスタンプ」があります:

  • アクセス - ファイルが最後に読み取られた時間
  • 変更 - ファイルが最後に変更された時刻 (コンテンツが変更された)
  • 変更 - ファイルのメタデータが最後に変更された時刻 (権限など)

この情報を表示するには、stat を使用できます。 これは coreutils の一部です。

stat デバイス、inode、リンクなどの詳細情報も表示されます。

この種の情報は、ファイルシステムとマウント オプションに大きく依存することに注意してください。たとえば、noatime でパーティションをマウントする場合 オプションでは、アクセス情報は書き込まれません。

タイムスタンプを変更するユーティリティは touch です .どのタイムスタンプを変更するかを決定するための引数がいくつかあります (例:-a はアクセス時間、-m は変更時間)。新しい指定されたタイムスタンプの解析に影響を与えます。man touch を参照してください。 詳細については

touch cp -u と組み合わせると便利です (「SOURCE ファイルが宛先ファイルよりも新しい場合、または宛先ファイルが見つからない場合にのみコピーする」 ) または空のマーカー ファイルの作成用。


echox の回答は有効ですが、ファイルの作成時間に関する情報を追加したいと思います。

ファイル システムのサポート

一部のファイル システムでは、作成時間 (または発生時間) に関する i ノードの追加エントリがサポートされています。 ext4 がこの機能をサポートし、JFS と BTRFS もサポートしていることを知っています。

ただし、ほとんどのツールと API は、この追加情報を読み取るように更新されていません。そのため、たとえそこにある可能性があっても、アクセスすることはできません.

たとえば、Ubuntu 12.04 LTS では、今日作成したファイルに対して次のようになります:

$ echo Just another test > /tmp/mytest
$ sleep 3
$ touch /tmp/mytest
$ sleep 2
$ cat /tmp/mytest > /dev/null
$ stat /tmp/mytest 
[...]
Access: 2012-06-05 13:33:44.279774711 +0200
Modify: 2012-06-05 13:33:34.611893317 +0200
Change: 2012-06-05 13:33:34.611893317 +0200
 Birth: -
$ sudo debugfs -R 'stat /tmp/mytest' /dev/sda1
[...]
 ctime: 0x4fcdee8e:91e30114 -- Tue Jun  5 13:33:34 2012
 atime: 0x4fcdee98:42b417dc -- Tue Jun  5 13:33:44 2012
 mtime: 0x4fcdee8e:91e30114 -- Tue Jun  5 13:33:34 2012
crtime: 0x4fcdee46:01258f1c -- Tue Jun  5 13:32:22 2012
[...]

出力が正しくないように見えますが、新しい stat 関数には生年月日フィールドがあることがわかります。また、debugfs を介して情報を取得できます (ext4 ファイル システムを使用しているため、crtime)。

statx のサポート

Kernel 4.11 以降、新しい statx システム コールがあり、Y2038 またはネットワーク ファイル システムのサポートの向上に加えて、btime のようないくつかの追加機能ももたらします。 または出生時間 (作成時間) アクセス。 ext4 のサポートは、同じカーネル リリース 4.11 で行う必要があります。

以降のカーネル リリースでは、この新しい syscall のサポートを追加するためのパッチがあります。カーネル 4.13 の BTRFS と F2FS、4.14 の SMB3、4.15 の GFS2、4.16 の NFS など

今後の glibc は、このインターフェースを照会するための関数呼び出しを提供します (glibc statx サポートに関する Phoronix ニュースを参照してください)。したがって、ユーザー空間でのこの機能のサポートはすぐに期待できます。


Linux
  1. 与えられたファイルの年齢を取得しますか?

  2. Stdoutに出力し、同時にGrepをファイルに出力しますか?

  3. ファイルのアクセス許可と保存?

  1. ファイルの変更または変更として何がカウントされますか?

  2. リダイレクトとパイプ出力?

  3. Ubuntu – Linux –ファイル変更時間と変更時間?

  1. vsFTPDのインストールと構成

  2. Mac ファイルのタイムスタンプについて

  3. スレッドとファイル記述子