Eu sei como obter o mtime de um arquivo no formato de época:
stat --format=%Y <file>
Mas não consegui descobrir como definir o mtime de um arquivo no formato de época. A página do manual touch (1) parece aceitar apenas um valor de "registro de data e hora" (formato fixo mais ou menos que usa meses, dias, horas, minutos, etc) ou uma "sequência de datas legível por humanos de formato livre".
Existe outro utilitário que eu deveria procurar?
Obrigado.
shell
timestamps
touch
eil
fonte
fonte
Respostas:
Pelo menos no mundo GNU:
Como com
date
.fonte
Com
perl
:Isso mudará o tempo de todos os arquivos
@ARGV
.(stat($_))[8]
é atime do arquivo.utime
pode receber uma lista de arquivos; se você não se importa em alterar o atime, pode tentar:Nota
utime
depende da biblioteca de tempo de execução C e o sistema de arquivos está usando. veja mais emperldoc -f utime
eperldoc perlport
.fonte
Com o
touch
comando do GNU coreutils (ou seja, no Linux e Cygwin não incorporado), consulte o manual completo (geralmente disponível localmente em formato de informação) para obter a documentação dos formatos de entrada de data . As datas da época são indicadas com o prefixo@
:Isso também funciona com o BusyBox (pelo menos em alguns sistemas, pode depender das opções de compilação).
Com o * BSD, acho que você não pode fazer isso
touch
sozinho, mas pode chamardate
para formatar o horário da época em um formato quetouch
aceite.O POSIX notoriamente não tem maneiras de manipular datas de época. Você pode usar perl .
fonte