Если в «топ - 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}'