С инструментами GNU:
find /usr -type f -name "*.h" -printf "%s %p\0" | sort -zrnk1,1 | head -zn1 | tr '\0' '\n'
Это разрешает имена файлов с символами новой строки, find
выводит завершенную строку NUL, и следующие команды используют NUL в качестве разделителя вместо новой строки. В конце конвейера tr
преобразует разделитель обратно в новую строку.
Если вам нужно только имя файла, добавьте cut
, чтобы удалить первое разделенное пробелами поле:
find /usr -type f -name "*.h" -printf "%s %p\0" | sort -zrnk1,1 | head -zn1 |
tr '\0' '\n' | cut -d' ' -f2-