O mais fácil seria simplesmente classificar por tamanho e imprimir as últimas 5 linhas:
ls -Sr /usr/lib | tail -n 5
De man ls
:
-r, --reverse
reverse order while sorting
-S sort by file size
tail
apenas imprime as últimas N linhas de um arquivo:
-n, --lines=K
output the last K lines, instead of the last 10; or use -n +K to
output lines starting with the Kth
Se você também quiser verificar arquivos em subdiretórios, poderá fazer isso:
find /usr/lib -type f -ls | sort -gk7 | tail -n 5
O comando find
procura por arquivos, de man find
:
-type c
File is of type c:
[ ... ]
f regular file
-ls True; list current file in ls -dils format on standard output.
The block counts are of 1K blocks, unless the environment vari‐
able POSIXLY_CORRECT is set, in which case 512-byte blocks are
used. See the UNUSUAL FILENAMES section for information about
how unusual characters in filenames are handled.
sort
faz o que você esperaria, ele classifica sua entrada. De man sort
:
-g, --general-numeric-sort
compare according to general numerical value
-k, --key=KEYDEF
sort via a key; KEYDEF gives location and type
Portanto, classifique -g
para classificar em ordem numérica e -k7
classifica no sétimo campo que, no caso de find -ls
, é o tamanho do arquivo.
Isso deve ser relativamente robusto e não tem problemas com nomes de arquivos com espaços ou caracteres estranhos. Em qualquer caso, uma vez que você está pesquisando através de /usr/lib
, é improvável que você tenha nomes de arquivos estranhos.