Se por "top 5" você quer dizer por tamanho, então você precisa dizer sort
para qual coluna classificar; o padrão passará por todas as colunas em ordem, o que significa classificar inicialmente pelo número de links. Além disso, sem algum tipo de extensão, o tamanho "legível por humanos" não será ordenado, exceto no GNU sort
; portatil sort -n
não sabe sobre sufixos como B
, K
, etc. Note também que você perde as informações de ordenação que você pediu ls
porque está sendo executado em arquivos individuais sob o controle de find
. E, em seguida, o seu sort
classifica do menor para o maior, por isso mesmo corrigindo que você obtenha as cinco menores imagens de head
. (E o ||
antes de awk
um erro de digitação? Você está dizendo para executar awk
somente se o fluxo find
falhar.)
Combinando tudo isso e otimizando usando xargs
para agrupar as coisas e combinando o head
no awk
, o que você quer é ter certeza que você tem o GNU sort
, então use
find . \( -iname \*.png -o -iname \*.jpg \) -print0 | xargs -0 ls -lh | sort -k5gr,5 | awk 'NR <= 5 {print $9, "=>", $5}'