Eu sei que ls -t
irá listar todos os arquivos por hora modificada. Mas como posso limitar esses resultados apenas aos últimos n arquivos?
tharl
, pois tende a ter tudo o que preciso.
Eu sei que ls -t
irá listar todos os arquivos por hora modificada. Mas como posso limitar esses resultados apenas aos últimos n arquivos?
tharl
, pois tende a ter tudo o que preciso.
Respostas:
Tente usar a cabeça ou a cauda. Se você deseja os 5 arquivos modificados mais recentemente:
ls -1t | head -5
O -1 (que é um) indica um arquivo por linha e o cabeçalho diz que recebe as 5 primeiras entradas.
Se você quiser as últimas 5 tentativas
ls -1t | tail -5
ls
em várias colunas, mas a saída de ls
é canalizada para comando a seguir com 1 arquivo / dir em um momento
ls -1t | head -n 6 | tail -n 5
A resposta aceita lista apenas os nomes dos arquivos, mas para obter os 5 principais arquivos, também é possível usar:
ls -lht | head -6
Onde:
-l
saídas em formato de lista
-h
torna a saída legível por humanos (ou seja, os tamanhos dos arquivos aparecem em kb, mb, etc.)
-t
classifica a saída colocando primeiro o arquivo modificado mais recentemente
head -6
mostrará 5 arquivos porque ls
imprime o tamanho do bloco na primeira linha de saída.
Eu acho que essa é uma abordagem um pouco mais elegante e possivelmente mais útil.
Exemplo de saída:
total 26960312
-rw-r--r--@ 1 user staff 1.2K 11 Jan 11:22 phone2.7.py
-rw-r--r--@ 1 user staff 2.7M 10 Jan 15:26 03-cookies-1.pdf
-rw-r--r--@ 1 user staff 9.2M 9 Jan 16:21 Wk1_sem.pdf
-rw-r--r--@ 1 user staff 502K 8 Jan 10:20 lab-01.pdf
-rw-rw-rw-@ 1 user staff 2.0M 5 Jan 22:06 0410-1.wmv
Por padrão, ls -t
classifica a saída da mais nova para a mais antiga; portanto, a combinação de comandos a ser usada depende de qual direção você deseja que sua saída seja ordenada.
Para os 5 arquivos mais recentes ordenados do mais recente para o mais antigo, use head
as 5 primeiras linhas de saída:
ls -t | head -n 5
Para os 5 arquivos mais recentes ordenados do mais antigo para o mais novo, use a -r
opção para reverter ls
a ordem de classificação e use tail
as 5 últimas linhas de saída:
ls -tr | tail -n 5
ls -t
listar arquivos por hora de criação e não pela última vez modificada. Use ls -ltc
se desejar listar arquivos pela última vez modificada, da última para a primeira (de cima para baixo). Assim, para listar o último n:ls -ltc | head ${n}
-t sort by modification time, newest first
ls -lrt
pode ajudar alguém.