Não use ls
, este é um trabalho para stat
:
stat -c '%y' filename
-c
nos permite obter uma saída específica, aqui %y
vamos 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 date
os especificadores de formato para atender às suas necessidades. Veja man date
també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 comostat
efind
ao escrever scripts.eu tentei
mas se a data for menor que 10, ela perderá a hora. Isso devido ao espaço extra antes da data, se for menor que 10. Tente o seguinte:
O comando awk imprime os campos separados por todos os espaços (-F ''). Espero que funcione. Sei que isso não responde à pergunta original, mas apenas um esclarecimento sobre o comando ls por apenas data e hora. Quando você "ubuntu obtém a data e a hora do arquivo" no Google, ele lista essa pergunta no topo, que é o que eu estava procurando, já que também não preciso do ano. Por ano, data e hora, você pode tentar um dos comandos abaixo. % m imprime o número do mês. % b imprime a abreviação do mês: elimine% H:% M se não precisar de horas e minutos. % -d não imprime zero à esquerda no dia do mês.
fonte