Это способ сделать это на Perl.(Примечание: нерекурсивная версия, в соответствии с более ранней версией вопроса)
perl -wE 'say for ((sort { -s $b <=> -s $a } </given/dir/*>)[0..9]);'
Однако я уверен, что для этой работы есть лучшие инструменты.
ETA: Рекурсивная версия, используя File :: Find :
perl -MFile::Find -wE '
sub wanted { -f && push @files, $File::Find::name };
find(\&wanted, "/given/dir");
@files = sort { -s $b <=> -s $a } @files;
say for @files[0..9];'
Чтобы проверить размеры файлов, используйтенапример, printf("%-10s : %s\n", -s, $_) for @files[0..9];
вместо.