Quais sistemas de arquivos no Linux armazenam o tempo de criação?

32

Existem sistemas de arquivos (conhecidos, confiáveis) no Linux que armazenam o tempo de criação de arquivos e diretórios na tabela i-node?

Se houver, o horário "alterado" será substituído pelo horário de criação de um nó i em uma chamada stat?

Franziskus
fonte
1
Consulte também Como faço para sl e classifico os resultados por data de criação?
Gilles 'SO- stop be evil'
não parece ser uma maneira de obter o tempo de criação de arquivos no Linux, se o arquivo estiver em um sistema de arquivos ext4. Veja: unix.stackexchange.com/a/131347/182996
kaartic

Respostas:

16

O sistema de arquivos ext4 armazena o tempo de criação. stat -c %W myfilepode mostrar para você.

Keith
fonte
6
Obrigado. No meu sistema stat -c %Wretorna 0 (desconhecido o tempo de criação), mas isso é outra questão ...
Franziskus
1
Mas observe que, devido à maneira como os arquivos são manipulados por muitos programas, esse valor do tempo de criação pode não ser útil .
mattdm
15
@ Legate: se um editor de texto funciona copiando o arquivo para um local temporário, editando a cópia de trabalho temporária e movendo a cópia temporária sobre o original ao salvar, quando é o momento da criação?
mattdm
1
Isso precisa ser ativado de alguma forma? Tentei obter o tempo para um arquivo em um sistema de arquivos ext4 e obtive zero. Depois de ler este post no blog , também tentei usar debugfse statrevelou que não há crtime. Então, eu me pergunto se ele precisa ser ativado de alguma forma. (FWIW eu uso o Arch Linux )
starfry 17/04
2
não parece ser uma maneira de obter o tempo de criação de arquivos no Linux. Veja: unix.stackexchange.com/a/131347/182996
kaartic,
30

Vários sistemas de arquivos armazenam o horário de criação do arquivo, embora não exista um nome padrão para este campo:

  • ufs2 → st_birthtime
  • zfs → crtime
  • ext4 → crtime
  • btrfs → otime
  • jfs → di_otime
jlliagre
fonte
5
Para ser explícito, a partir de 2015-03, o XFS não suporta (consulte a página de xfs_dbmanual ou na Estrutura do sistema de arquivos XFS
Franklin Piat
4

Tanto quanto eu sei ext4, os sistemas de arquivos JFS e BTRFS suportam um campo extra no inode de arquivos para armazenar o tempo de criação, embora a nomenclatura possa ser diferente.

Fonte: Tempos de criação do arquivo LWN

Huygens
fonte
//, você conseguiu verificar isso? AFAIK é meio fraco, pelo menos para o meu gosto.
Nathan Basanese
5
@NathanBasanese O AFAIK estava se reportando ao JFS e BTRFS. Para ext4, sim, ele suporta. Verifique o debugfscomando stat. Exemplo: você precisa localizar o dispositivo em que o sistema de arquivos ext4 está montado (por exemplo, / dev / sda3) e precisa obter um número de inode de arquivo nesse sistema de arquivos (use ls -i, digamos 42000 é o número) e digite: debugfs -R 'stat <42000>' /dev/sda3. Execute isso como root ou com privilégios suficientes. Procure o crtimecampo, é esse. Para JFS e Btrfs, você precisa encontrar o comando debugfs equivalentes ...
Huygens
//, NIIICE. Eu tentei $ ls -i | grep dump.rdb 656376 dump.rdb e $ sudo debugfs -R 'stat <656376>' / dev / sda2, mas acho que ainda não tenho o ext4 lá. Se eu tentar em um ext4, eu direi.
Nathan Basanese
@NathanBasanese Você pode fazer df -Tpara obter o tipo de partição ou simplesmente digitar mount. Verifique se o inode do arquivo pertence à partição correta. Os inodes são (por natureza) específicos para uma partição.
Huygens