A única interface POSIX CLI (shell e utilitários) para as chamadas do sistema lstat()e é , temo, e sua saída não é pós-processável de forma confiável.stat()ls
Um truque pode ser usar pax -x ustar(o paxcomando e seu ustarformato são especificados) para gerar um tararquivo com o arquivo nele e extrair o carimbo de data e hora do arquivo.
O mtimesendo armazenado no deslocamento 136 como um número octal.
No entanto, está sobrecarregado por todas as limitações do formato US-tar.
Sua melhor aposta portátil seria usar perlou python:
perl -MPOSIX -le '
for (@ARGV) {
if (@s = lstat$_) {print $s[9]} else {warn "$_: $!\n"}
}' -- "$file"
(observe que ele não inclui o nanossegundo disponível em muitos sistemas modernos. Você pode obtê-lo através do Time::HiResmódulo, por exemplo, mas isso pressupõe que ele esteja instalado e seja de uma versão recente).
Se você estiver em um sistema operacional compatível com POSIX (o que parece ser assumido pela sua pergunta), há uma boa maneira de fazer isso usando paxque permite obter frações de segundo.
A única interface POSIX CLI (shell e utilitários) para as chamadas do sistema
lstat()
e é , temo, e sua saída não é pós-processável de forma confiável.stat()
ls
Um truque pode ser usar
pax -x ustar
(opax
comando e seuustar
formato são especificados) para gerar umtar
arquivo com o arquivo nele e extrair o carimbo de data e hora do arquivo.O
mtime
sendo armazenado no deslocamento 136 como um número octal.No entanto, está sobrecarregado por todas as limitações do formato US-tar.
Sua melhor aposta portátil seria usar
perl
oupython
:(observe que ele não inclui o nanossegundo disponível em muitos sistemas modernos. Você pode obtê-lo através do
Time::HiRes
módulo, por exemplo, mas isso pressupõe que ele esteja instalado e seja de uma versão recente).Se você estiver em um sistema operacional compatível com POSIX (o que parece ser assumido pela sua pergunta), há uma boa maneira de fazer isso usando
pax
que permite obter frações de segundo.Ligar:
Se eu ligar:
Eu recebo:
É bastante simples de trabalhar, mas aqui está uma variação empregando python.