Вместо сортировки результатов и сохранения только последних измененных, вы можете использовать awk для печати только того, который имеет наибольшее время модификации (во времени Unix):
find . -type f -printf "%T@\0%p\0" | awk '
{
if ($0>max) {
max=$0;
getline mostrecent
} else
getline
}
END{print mostrecent}' RS='\0'
Это должно быть быстреечтобы решить вашу проблему, если количество файлов достаточно велико.
Я использовал символ NUL (то есть '\ 0'), потому что, теоретически, имя файла может содержать любой символ (включая пробел и символ новой строки), но это.
Если в вашей системе нет таких патологических имен файлов, вы также можете использовать символ новой строки:
find . -type f -printf "%T@\n%p\n" | awk '
{
if ($0>max) {
max=$0;
getline mostrecent
} else
getline
}
END{print mostrecent}' RS='\n'
Кроме того, это работает и в mawk.