Como você parece estar usando a versão do Linux de stat(1)
, suponho que você também tenha a versão coreutils
do date(1)
:
TIMESTAMP=$( date +'%Y-%m-%d %H:%M:%S' -r "$JARNAME".jar )
Então estou usando
TIMESTAMP=$( stat -c "%y" $JARNAME.jar )
print $TIMESTAMP
e sua saída é algo como 2015-04-24 17:23:03.000000000 -0500
Eu preciso apenas da 2015-04-24 17:23:03
part
Com GNU
stat
, você poderia simplesmente usar o modificador de ponto 1 (largura de campo +) entre o%
introdutório e o caractere que especifica o formato por exemplo stat --printf "%.19y" filename
, portanto, no seu caso:
TIMESTAMP=$(stat -c "%.19y" infile)
Com BSD/OSX
stat
, você pode usar as opções -f
( formato ) e -t
( timefmt ):
TIMESTAMP=$(stat -f '%Sm' -t '%Y-%m-%d %H:%M:%S' infile)
1
dot: junto com uma largura de campo, o campo não é expandido quando o texto é mais longo, mas o texto é truncado.
O date
format %Y-%m-%d %H:%M:%S
usado na resposta do lcd047s pode ser simplificado para apenas %F %T
:
TIMESTAMP=$( date +'%F %T' -r "$JARNAME".jar )
De man date
:
FORMAT controls the output. Interpreted sequences are:
...
%F full date; same as %Y-%m-%d
...
%T time; same as %H:%M:%S
...
Ou use o corte:
TIMESTAMP=$( stat -c "%y" $JARNAME.jar | cut -d. -f1 )
print $TIMESTAMP