web-dev-qa-db-ja.com

後方リダイレクトはパイプと同じですか?

Linuxで入力すると

sort < txtfile

それはと同じことです

cat txtfile | sort
11
tony_sid

タイトルの質問へ:いいえ。ファイルの内容からstdinを取得すること(入力リダイレクト)は、あるプログラムの出力を別のプログラムの入力にパイプすることと同じではありません。

ただし、catは実際にはファイルの内容を出力するだけなので、結果はその例でも事実上同じです。


しかし、次の場合でも、結果は大きく異なります。

$ cat * | sort
$ sort < *

一致するファイルが複数ある場合、後者は生成します

-bash: *: ambiguous redirect

前者ほど柔軟性がないため、一致するすべてのファイルをキャットし、入力としてsortにパイプします。

17
Daniel Beck