O kernel do Linux tem uma chamada de sistema xstat(2)
em andamento há vários anos. David Howells, da RedHat, fez grande parte do trabalho. xstat(2)
permite recuperar o tempo de criação (às vezes rebatizado o "tempo de nascimento" ou "tempo de nascimento" nos mundos Linux e BSD por nenhuma razão muito boa) dos arquivos dos diversos sistemas de arquivos que o suportam, incluindo EXT4 um timestamp de criação no disco) e o CIFS (que, com sua herança DOS / OS / 2 / Windows, suporta um timestamp de criação como um cidadão de primeira classe há décadas). M. Howells trabalhou nos patches CIFS que acompanham a chamada do sistema.
O OpenSolaris e os BSDs realmente têm st_birthtim
em sua chamada de sistema stat(2)
, e o recurso é acessível aos autores de scripts por meio de programas aplicativos, como find
e ls
. Na página do OpenSolaris ls
man, você encontrará crtime
ao lado de atime
, mtime
e ctime
em vários lugares. Da mesma forma, o comando FreeBSD find
tem -Bmin
, -Bnewer
e -Btime
primários. E o Mac OS ls
tem uma opção -U
.
Se você estivesse escrevendo o seu script para o OpenSolaris, o BSDs ou o Mac OS 10, você poderia continuar com o que você quer fazer com os tempos de criação agora mesmo. De fato, se você estivesse escrevendo para o Windows, poderia fazer o mesmo. O Cygwin tem suporte a st_birthtim
desde 2007 , tornando o timestamp CreationTime
do Win32, teve desde a primeira versão do Windows NT e que o Windows NT mantém em ambos os volumes NTFS e FAT, disponível para ferramentas Cygwin.
No entanto, o mesmo não é verdade no mundo GNU Linux. A capacidade de tempo de criação ainda não chegou a GNU coreutils ' ls
ou para GNU findutils ' find
. Na verdade, nem sequer faz parte do kernel principal do Linux ainda. Parte do problema é que a chamada do sistema xstat(2)
foi atolada em um desvio em que as pessoas queriam manter três carimbos de data e hora, em vez de ter quatro como na API do kernel do Windows NT e copiar ctime
para substituí-lo por crtime
.
A resposta de Linus Torvalds em 2010 foi que "tudo é totalmente inútil e as pessoas não conseguem nem concorde com um nome "e" Vamos esperar cinco anos ".
Na verdade, como suspeito que a maioria das pessoas lendo isso saberá, o mundo tem concordado amplamente com o nome "tempo de criação" desde os anos 80 e já estamos esperando pelo menos 25 anos. É o nome usado no OS / 2 1.0; é o nome usado no VMS ODS-1; é o nome usado no Windows NT 3.5; é o nome usado no SMB; e é o nome usado na pergunta. ☺
Leitura adicional
- David Howells (2010-07-15). [PATCH 08/18] xstat: CIFS: Retornar atributos estendidos [ver # 6] . Lista de discussão do kernel Linux.
- 2.4.7 FileBasicInformation . Protocolo Windows SMB. MSDN. Corporação Microsoft.
- encontre (1) página de manual . Páginas de manual do FreeBSD.
- stat (2) página de manual . Páginas de manual do FreeBSD.
- ls (1) página de manual
- Corinna Vinschen (2007-03-26). _Re: Suporte para st_birthtime_ . Lista de discussão do Cygwin.
- Linus Torvalds (2010-07-22). Re: [PATCH 02/18] xstat: Adicione um par de chamadas do sistema para disponibilizar estatísticas de arquivos estendidos [ ver # 6] . Lista de discussão do kernel Linux.
- A.3.1.3 Cabeçalhos de arquivos . Arquivos-11. Documentação de Sistemas OpenVMS. HP.