我正在尝试打印文件的出生日期(crtime
),我正在使用 ext4 并支持 crtime 启用:
stat a
File: a
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 254,5 Inode: 393233 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1006/ user) Gid: ( 1006/ user)
Access: 2024-06-24 13:35:25.672343713 +0200
Modify: 2024-06-24 13:35:25.672343713 +0200
Change: 2024-06-24 13:35:25.672343713 +0200
Birth: 2024-06-24 13:35:25.672343713 +0200
find -printf '%B@'
当尝试按照手册所示显示出生日期时:
%Bk File's birth time, i.e., its creation time, in the format
specified by k, which is the same as for %A.
This directive produces an empty string if the underlying operating
system or filesystem does not support birth times.
我得到了这个结果:
find -name a -printf '%B@ %p\n'
-1.-000000010 ./a
这是错误还是我不知道的功能或其他什么。我使用的是 find 版本 4.9.0-5(也测试了版本 -4)。
我已经在 Ubuntu 和 Debian 上尝试过了。
这是一个已知错误:Linux 通过新的系统调用公开创建时间
statx
,而 GNU find 使用传统的stat
/lstat
。其他 GNU 实用程序已进行切换,但没有find
。