出力リダイレクトのリバース構文が入力リダイレクトとして機能しないのはなぜですか?

出力リダイレクトのリバース構文が入力リダイレクトとして機能しないのはなぜですか?

コマンド1:(cat file1 > file2成功)
コマンド2:file2 < cat file1(cat:対応するファイルやディレクトリなし)

出力と入力のリダイレクトの一般的な構文を知りたいです。
ファイルまたはストリームに対してリダイレクトが発生する可能性がある場合、コマンド2が失敗するのはなぜですか?

答え1

リダイレクトの場所

cat file1 >file2

出力リダイレクトが指定され、<入力リダイレクトが指定されます。

ライン

file2 < cat file1

同じですか?

file2 file1 <cat

(リダイレクトが実際に発生する場所は重要ではありません。自己解析フェーズでシェルによって処理され、実際のコマンドから削除されるためです。)これは「引数としてfile2実行しfile1、ファイルから標準入力をリダイレクトcat」を意味します。

catエラーは、現在のディレクトリでファイルとして開こうとしているシェルで発生します。シェルがコマンドを実行する前にエラーが発生しますfile2

関連:このコマンドはどのように合法ですか? ">ファイル1 <ファイル2猫"

関連情報