Como alterar o arquivo de tempo de nascimento do BSD (também conhecido como btime)?

1

Os sistemas BSD têm utime (3) que (entre outras coisas) permite alterar o "horário de nascimento", também conhecido como btime (em comparação com atime, mtime ou ctime), dos arquivos. Mas, a página do manual também indica que o tempo (3) está obsoleto por utimes (2).

Eu sei que posso ver o valor do btime usando stat:

stat -f %B <file>

Infelizmente, não parece que o touch (1) implemente a manipulação do btime. As páginas man no meu Mac incluem uma entrada para utime (3) na biblioteca C que pode manipular o btime, mas não estou vendo nada que forneça uma interface embutida para a manipulação btime do utime (3).

Outra dica que me ocorreu: Quando eu arrasto fotos do aplicativo Mac "Fotos", ele cria novos arquivos. (Os arquivos originais permanecem no local onde o Google Photos os mantém organizados, por isso tenho certeza de que esse é um novo arquivo copiado do original.) Esses novos arquivos têm datas Criadas (o que eu vejo nas listagens do localizador ou as informações obtidas, que exibem o valor do btime para o arquivo) que corresponde ao momento em que as fotos foram tiradas - geralmente vários anos no passado. Então, é claro que é possível definir btime.

    
por Craig Constantine 14.05.2017 / 14:30

1 resposta

3

Uma maneira de resolver isso (isso resolve meu problema) é usar o comando SetFile (1) da Apple, que permite a manipulação de atributos de arquivo. É preciso um -d arg para manipular a data de criação e um -m arg para manipular o tempo de modificação. De maneira útil, se eu definir a hora da modificação para antes da data de criação atual, ela também definirá a data de criação.

$ SetFile -m 05/14/200 foofile.jpg

Esse Q na pilha Apple / Think Different tem essa informação

    
por 15.05.2017 / 16:09