traduccion - bash tutorial
Bash convierte la época en fecha, mostrando el tiempo equivocado (2)
¿Cómo es que la fecha se está convirtiendo en un mal momento?
result=$(ls /path/to/file/File.*)
#/path/to/file/File.1361234760790
currentIndexTime=${result##*.}
echo "$currentIndexTime"
#1361234760790
date -d@"$currentIndexTime"
#Tue 24 Oct 45105 10:53:10 PM GMT
Esta marca de tiempo en particular está en milisegundos desde la época, no en los segundos estándar desde la época. Divide por 1000:
$ date -d @1361234760.790
Mon Feb 18 17:46:00 MST 2013
Puedes usar la expansión aritmética de bash para realizar la división:
date -d @$((value/1000))
Tenga en cuenta que " value
" es una variable bash con $
opcional. es decir, $value
o value
puede ser utilizado.