Não use ls, este é um trabalho para stat:
stat -c '%y' filename
-cnos permite obter uma saída específica, aqui %yvamos obter a última hora modificada do arquivo no formato legível por humanos. Para obter tempo em segundos desde o Epoch, use %Y:
stat -c '%Y' filename
Se você quiser o nome do arquivo também, use %n:
stat -c '%y : %n' filename
stat -c '%Y : %n' filename
Defina os especificadores de formato para atender às suas necessidades. Verifique man stat.
Exemplo:
% stat -c '%y' foobar.txt
2016-07-26 12:15:16.897284828 +0600
% stat -c '%Y' foobar.txt
1469513716
% stat -c '%y : %n' foobar.txt
2016-07-26 12:15:16.897284828 +0600 : foobar.txt
% stat -c '%Y : %n' foobar.txt
1469513716 : foobar.txt
Se você deseja a saída Tue Jul 26 15:20:59 BST 2016, use o tempo da época como entrada para date:
% date -d "@$(stat -c '%Y' a.out)" '+%a %b %d %T %Z %Y'
Tue Jul 26 12:15:21 BDT 2016
% date -d "@$(stat -c '%Y' a.out)" '+%c'
Tue 26 Jul 2016 12:15:21 PM BDT
% date -d "@$(stat -c '%Y' a.out)"
Tue Jul 26 12:15:21 BDT 2016
Verifique dateos especificadores de formato para atender às suas necessidades. Veja man datetambém.
lsé implementado de forma inconsistente nos sistemas e, portanto, nunca deve ser usado para qualquer tipo de automação. Em vez disso, use comandos comostatefindao escrever scripts.