Altera o registro de data e hora do arquivo e exibe hora em vez de ano com ls

4

Eu quero alterar a data de um arquivo para amanhã às 21:00. Eu usei toque, mas quando digito ls -l o ano do arquivo é exibido em vez da hora.

-rw-r--r-- 1 ABCD DEF   0 sept. 30  2014 test01
-r-xr-xr-x 1 ABCD DEF   15 sept. 29 09:26 test02

Aqui, por exemplo, podemos ver claramente "2014", mas não "21:00". Fato estranho, quando executo touch --date "1 hour ago" test01 ele é exibido corretamente, mas touch --date "+1 hour" test01 não funciona. Além disso, editar o arquivo com o emacs e salvá-lo exibirá a hora em vez do ano.

Isso é normal? Como posso alterar esse comportamento sem usar parâmetros em ls nem alterar a configuração do computador? (isto é para um desafio)

    
por heydude1 29.09.2014 / 10:09

2 respostas

3

ls tem dois formatos de exibição de hora:

  • Para timestamps dos últimos 6 meses: mês, dia, hora, minuto.
  • Para outros timestamps (no futuro ou há mais de 6 meses): ano, mês, dia.

A intenção é ganhar espaço horizontal e não sobrecarregar o usuário com informações. A exibição "deste ano" é mais óbvia do que mostrar o ano atual e permitir que o usuário perceba que, de fato, é o ano atual. A hora exata do dia raramente é importante para arquivos muito antigos. Datas no futuro são raras.

O GNU ls tem uma opção --full-time para mostrar o tempo de arquivo completo (ano, mês, dia, hora, minuto, segundos, nanossegundos, deslocamento do fuso horário), independentemente de quando esse tempo é. Você pode ajustar o formato de saída com a opção --time-style .

    
por 30.09.2014 / 01:55
1

Problema resolvido. O problema é que, se a data estiver no futuro, ela exibirá o ano em vez da hora.

Veja um exemplo simples: touch file e l

-rw-r--r-- 1 ABCD DEF 0 sept. 29 12:01 file

que é normal. Não tente alterar a data para 15 segundos no futuro: touch --date "+15 seconds" file e imediatamente ls -l

-rw-r--r-- 1 ABCD DEF 0 sept. 29  2014 file

E depois de 15 segundos, o mesmo ls -l

-rw-r--r-- 1 rius_b users 0 sept. 29 12:03 file
    
por 29.09.2014 / 12:04