Como o @TomMcKenzie diz em um comentário para outra resposta, date -r 123456789
é sem dúvida uma solução simples mais comum (ou seja, mais amplamente implementada) por tempos dados em segundos desde a época Unix, mas infelizmente não existe uma solução portátil universal garantida.
A -d
opção em muitos tipos de sistemas significa algo completamente diferente da --date
extensão do GNU Date . Infelizmente, o GNU Date não interpreta -r
o mesmo que essas outras implementações. Infelizmente, você precisa saber qual versão date
está usando, e muitos date
comandos antigos do Unix não suportam nenhuma das opções.
Pior ainda, o POSIX date
não reconhece nem -d
nem -r
fornece nenhum caminho padrão em nenhum comando (que eu saiba) para formatar um horário do Unix a partir da linha de comando (já que o POSIX Awk também não possui strftime()
). (Você não pode usar touch -t
e ls
porque o primeiro não aceita um tempo dado em segundos desde a época do Unix.)
Observe que The One True Awk, disponível diretamente de Brian Kernighan, agora possui a strftime()
função incorporada e também uma systime()
função para retornar o tempo atual em segundos desde a época do Unix); portanto, talvez a solução Awk seja a mais portátil.