Eu tenho um diretório: /home/user/
Como posso listar todos os arquivos neste diretório (incluindo aqueles em subdiretórios) e ordená-los pela data da última modificação?
Você pode usar:
ls -Rt
onde -R
significa recursivo (inclui subdiretórios) e -t
significa "classificar pela data da última modificação".
Para ver uma lista de arquivos classificados por data de modificação, use:
ls -l -Rt
Um alias também pode ser criado para fazer isso:
alias lt='ls -lht'
lt
Onde -h
fornece uma saída mais legível.
ls -lrt[RhA]
. o-r
inverte a ordem de classificação, deixando as coisas editadas recentemente no final da lista ...-ila
fornece praticamente todas as informações de que você precisa.$ ls -ilaRt
ll -Rt
era a solução perfeita para mim, pois precisava ver os arquivos por data de modificação mais recente. Isso pode ser útil para outras pessoas.ll
não existe e não é um comando. É principalmente um alias no shell bash, mas não está definido na maioria dos / some /? distribuições do Linux. Alguns o definem comoalias ll='ls -l'
em /etc/bash.bashrc ou /etc/.bashrc. Portanto, pode não funcionar e pode não existir no sistema de OPs. Usels -l -Rt
pelo menos, comols
é um comando padrão definido por posix. Ou especifique o que você quis dizeralias ll='ls -l'; ll -Rt
.Se desejar uma lista mestre na qual todos os arquivos sejam classificados por data de modificação, mostrando o diretório em que estão, mas não agrupados por diretório , você pode usar isto:
O resultado se parece muito com
ls -l
:Mac OS X
Para aqueles que usam Mac OS X, a opção -printf não está disponível no BSD find (você obterá este erro :)
find: -printf: unknown primary or operator
. Felizmente, você pode instalar o GNU find através do Homebrew (deve haver uma opção para Fink e Macports também):Após a instalação, o GNU find deve estar disponível para você como
gfind
. Então, tudo que você precisa fazer é alterar a linha acima para:fonte
find
quanto o autor, esses argumentos para-printf
são diretivas de formato que podem ser encontradas emman find
(pesquise a quinta instância deprintf
nessa página).find . -type f -print0 | xargs -0 stat -f "%m %Sp %l %-8Su %-8Sg %8z %Sm %N" | sort | cut -f 2- -d' '
fornecerá praticamente a mesma saída no MacOS usando apenas utilitáriossort -r
para reverter a classificação e ter os arquivos modificados mais recentemente no topo.MAC OSX 2019
Se você não se importa com a hora em que ela foi criada, mas deseja que sua lista seja ordenada, use este comando
==>
ls -t
Se você quiser pedir e ver a data e as informações do usuário, use este comando
===>
ls -lt
fonte
Para os
zsh
usuários, você também pode usar qualificadores glob (também documentados emman zshexpn
):Onde
o
significa ordem de classificação, ativa em
significa hora da última modificação .Isso pode ser útil quando usado em um loop for ou outro comando:
Ou encadeado com outro qualificador glob:
fonte