Estou tentando imprimir a data de nascimento do arquivo ( crtime
), estou trabalhando com ext4 e suporte para crtime enable:
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
ao tentar exibir a data de nascimento find -printf '%B@'
conforme indicado no manual:
%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.
Eu obtenho esse resultado:
find -name a -printf '%B@ %p\n'
-1.-000000010 ./a
É um bug ou um recurso que não conheço ou algo mais. Estou usando o find versão 4.9.0-5 (e testei a versão -4 também).
Eu tentei no Ubuntu e no Debian.
Este é um bug conhecido : o Linux expõe o tempo de criação através da nova
statx
chamada de sistema, enquanto o GNU find usa o tradicionalstat
/lstat
. Outros utilitários GNU fizeram a mudança, mas não ofind
.