Если в «топ - 5» вы имеете в виду по размеру, то вам нужно указать , какой столбец sort для сортировки; значение по умолчанию будет проходить через все столбцы по порядку, то есть изначально будет сортироваться по количеству ссылок. Кроме того, без какого-либо расширения "читаемый человеком" размер не будет сортироваться вообще разумно, за исключением sort GNU; Переносимая sort -n не знает о суффиксах типа B , K и т. д. Также обратите внимание, что вы теряете информацию сортировки, о которой вы просили ls потому что она запускается для отдельных файлов под управлением find . И затем ваш sort сортируется по убыванию , так что даже исправляя, вы получаете пять самых маленьких изображений из head . (И является ли || перед awk опечаткой? Вы говорите, что запускаете awk только в случае сбоя конвейера find .)
Комбинируя все это и оптимизируя с помощью xargs для объединения вещей и объединения head в awk , вам нужно убедиться, что вы используете sort GNU, а затем использовать
find . \( -iname \*.png -o -iname \*.jpg \) -print0 | xargs -0 ls -lh | sort -k5gr,5 | awk 'NR <= 5 {print $9, "=>", $5}'