Эффективно разницы нет.
sort < output
использует функцию оболочки, называемую перенаправлением файлов (см., Например, здесь )
Оболочка открывает файл тайла output
и присоединяет этот открытый файл как stdin
к программе сортировки.
sort output
дает имя файла output
в качестве аргумента командной строки для сортировки.
sort, так как многие утилиты, которые принимают имя файла в качестве аргумента, будут пытаться прочитать ввод из stdin
, если вы не дадите ему имя файла в качестве аргумента, как в первом случае здесь. В обоих случаях sort считывает содержимое файла output
, сортирует его и записывает результат в стандартный вывод.