web-dev-qa-db-pt.com

Como posso classificar a saída de 'ls' pela data da última modificação?

Como posso classificar a saída de ls pela data da última modificação?

1318
nearly_lunchtime
ls -t

ou (para reverso, mais recente na parte inferior):

ls -tr

A página do manual ls descreve isso com mais detalhes e lista outras opções.

1580
Adnan

Tente isto: ls -ltr. Ele vai te dar o mais recente até o final da lista

145
Rana

Para uma resposta completa, aqui está o que eu uso: ls -lrth

Coloque isso no seu script de inicialização /etc/bashrc e atribua um alias como este: alias l='ls -lrth' Reinicie o seu terminal e você deve ser capaz de digitar l e ver uma longa lista de arquivos.

42
Dejan

Eu uso em algum momento isso:

find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -tr

ou

find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -ltr

para olhar recursivamente sobre quais arquivos foram modificados nos últimos 5 minutos.

... ou agora, com a versão recente de GNU find :

find . -type f -mmin -5 -exec ls -ltr {} +

... e até por não limitar a arquivos :

find . -mmin -5 -exec ls -ltrd {} +

(note que o -d muda para ls por não exibir o conteúdo dos diretórios)

28
F. Hauri

Adicionar:

alias lt='ls -Alhtr'

em $homedir/.bashrc

20
Layer8

Encontre todos os arquivos no sistema de arquivos que foram modificados no máximo 3 * 24 horas (3 dias) atrás até agora:

find / -ctime 3
12
pbies

Mnemônico

Para não ignorar as entradas que começam com . e classificar por data (mais recente primeiro):

ls -at

Para não ignorar as entradas que começam com . e reverse sort by date (mais antigo primeiro):

ls -art

Para não ignorar as entradas que começam com ., use um formato de listagem longo e ordene por data (mais recente primeiro):

ls -alt

Para imprimir tamanhos humanos legíveis, não ignore as entradas que começam com ., use um formato de listagem longo e ordene por data (mais recente primeiro) (@EvgeniSergeev note):

ls -halt

mas tenha cuidado com o último , porque um simples digitação pode causar uma falha no servidor ... (nota @Isaac)

10
simhumileco

Para mostrar 10 mais recentes classificados por data, eu uso algo assim:

ls -t ~/Downloads | head -10

ou para mostrar o mais antigo

ls -tr ~/Downloads | tail -10
9
lfender6445

Usando apenas comandos Unix muito básicos:

ls -nl | sort -k 8,8n -k 6,6M

Isso funcionou no Linux; coluna 8 é "n" (numérico), coluna 6 é "M", mês.

Eu sou novo em sort, então esta resposta provavelmente poderia ser melhorada. Para não mencionar, ele precisa de opções adicionais para ls e sort para usar timestamps exatos, mas nem todos precisarão disso.

7
bbarker