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