Como posso classificar a saída de ls
pela data da última modificação?
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.
Tente isto: ls -ltr
. Ele vai te dar o mais recente até o final da lista
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.
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)
Adicionar:
alias lt='ls -Alhtr'
em $homedir/.bashrc
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
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)
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
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.