Відповіді:
До вашого заголовкового питання: Ні. Перехід stdinіз вмісту файлу ( перенаправлення входу ) - це не те саме, що передавати вихід однієї програми на вхід іншої програми.
Але, оскільки ваш catвласне просто друкує вміст файлу, результат фактично такий самий у тому прикладі.
Але навіть тільки наступне дає дуже різні результати:
$ cat * | sort
$ sort < *
Якщо є декілька відповідних файлів, останній видасть
-bash: *: ambiguous redirect
оскільки це просто не так гнучко, як колишній, який буде містити всі відповідні файли та передавати їх як вхідні дані sort.
sort < txtfileнабагато ефективніше, ніж cat txtfile | sort?
sort *? Немає марно використовувати кішку, що не марно використовувати непрямі, найкоротшим не набирати, простіше за все думати, і я вважаю , GNU роду будуть ставитися до вам масштабованість оптимізації для дуже великих файлів (не впевнений , що - половина схаменувшись там)