Mostrar o ano ao listar arquivos no diretório atual


58

Estou trabalhando em um servidor Red Hat. Os comandos ls -lou lla data e a hora em formato +"%b %-d %H:%M".

Quero listar os arquivos de maneira que o ano em que cada arquivo foi criado apareça na data.

Como isso é possível?


Não, eu não acho que eu tente "ls -É" não é encontrada
WAEL

11
ls -lTé para Mac OSX
Kris Roofe

11
Em geral, o Unix não controla os horários de criação dos arquivos e, mesmo quando o faz, lsgeralmente não tem como exibi-lo. Então, em geral, isso é impossível.
G-Man diz 'Reinstate Monica'

Respostas:


86

Você pode usar man lse aqui você pode encontrar o --time-styleparâmetro. Ou você pode usar:

ls --full-time.


11
@bob: Concordo totalmente com a Turco. Se você não fizer isso, ninguém se incomodará em responder sua pergunta.
O Cavaleiro das Trevas

5
Exemplo de estilo de horals -l --time-style=+%F
sobi3ch 19/09/19

11
Para quem já lldefiniu como ls -laou algo mais, ll --full-timetambém trabalhe.
Meetai.com

8

ls -lexibirá mês dia e ano - uma vez que , de acordo com a página de manual do BSD: Se o tempo de modificação do arquivo for superior a 6 meses no passado ou no futuro, o ano da última modificação será exibido no lugar dos campos de hora e minuto .

Portanto, para garantir que o ano seja sempre exibido, use:

ls --time-style=long-iso (GNU / Linux)

ls -lT exibirá informações completas sobre o horário em BSD (MacOS)


6

Como você pediu o ano, ls -lacé fácil lembrar se, como eu, você usa ls -lao tempo todo. A cdá-lhe CTime que exibirá um ano, se não é o ano em curso ou a hora eo minuto que seja.


Eu gosto disso. Muito menos ruído na saída e apenas uma letra para lembrar no futuro.
8777 Eric

11
Isso parece alterar o comportamento de lsaté a data alterada, em vez da data padrão modificada .
Permita-se a falta

2
ls -lexibe data e hora para datas que estão nos últimos seis meses e data e ano para outras datas. O ctime pode ser nos últimos seis meses, tanto quanto mtime (data de modificação), assim como ls -lacexibir os horários (em vez de anos), tanto quanto ls -lapossível. Além disso, como Mateen Ulhaq ressalta, ls -lacnão exibe as mesmas datas que exibe ls -la. Esta resposta está errada.
G-Man diz 'Reinstate Monica'

2
Como no mundo essa "resposta" obteve sete votos?
G-Man diz 'Reinstate Monica'

5

Além da resposta de Jan Marek ... Notei que você pode se safar com apenas:

ls --full ou ls --fu

o que fará o mesmo que ls --full-timeele descreveu. Obrigado Stéphane Chazelas. Agora eu digito em ls --futodos os lugares. :)


11
Or ls --fu. As opções longas no estilo GNU podem ser abreviadas desde que não haja ambiguidade ( --fnão funcionaria, pois há também um --file-type e --format). Observe que uma versão futura pode introduzir um, --full-permspor isso é perigoso confiar nisso.
Stéphane Chazelas

11
Ótimo saber! É tudo sobre digitar menos. :)
G_Style

2

Se você estiver usando busybox(distribuições incorporadas, por exemplo, OpenWRT, LEDE), o switch que você procura é -epara versões até 1.26.2 e --full-timepara 1.27.0 e acima (veja o commit que a mudou ).


11
-etambém funciona com Solaris lse ast-open's, por isso é realmente mais próximo de um padrão do que o GNU --full-time. Uma pena que o busybox o tenha removido nas versões mais recentes.
Stéphane Chazelas 21/01

@ StéphaneChazelas não sabia disso! Obrigado pela edição
Code Bling

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.