Use simplesmente algo como:
ls -lS /path/to/folder/
Capital S .
Isso classificará os arquivos por tamanho.
Veja também:
-S sort by file size
Se você quiser classificar na ordem inversa , basta adicionar -r
switch.
Atualização:
Para excluir diretórios (e desde que nenhum dos nomes de arquivo ou alvos de links simbólicos contenha caracteres de nova linha):
ls -lS | grep -v '^d'
Atualização 2:
Eu vejo agora como ainda mostra links simbólicos, que podem ser pastas. Os links simbólicos sempre começam com uma letra l, como no link.
Altere o comando para filtrar por -
. Isso deve deixar apenas arquivos regulares:
ls -lS | grep '^-'
No meu sistema, isso mostra apenas arquivos regulares.
atualização 3:
Para adicionar recursão, deixo a classificação das linhas para o comando sort
e digo para usar a quinta coluna para classificar.
ls -lR | grep '^-' | sort -k 5 -rn
-rn
significa reverso e numérico para obter os maiores arquivos no topo. O lado negativo desse comando é que ele não mostra o caminho completo dos arquivos.
Se você precisar do caminho completo dos arquivos, use algo assim:
find . -type f -exec du -h {} + | sort -r -h
O comando find
localizará recursivamente todos os arquivos em todos os sub-diretórios de .
e chamará du -h
(significando uso de disco -humanreadable ) e então ordenará a saída novamente. Se o seu find
/ sort
não suportar -h
, substitua por du -k
e sort -rn
. Note que tamanho e uso de disco não são a mesma coisa.