为什么输出重定向的反向语法不能充当输入重定向?

为什么输出重定向的反向语法不能充当输入重定向?

命令1:(cat file1 > file2成功)
命令2:file2 < cat file1(cat:没有这样的文件或目录)

我只是想知道输出和输入重定向的一般语法。
如果文件或流可以发生重定向,为什么命令 2 会失败?

答案1

重定向在

cat file1 >file2

是输出重定向,而<指定输入重定向。

线路

file2 < cat file1

是相同的

file2 file1 <cat

(重定向实际发生在哪里并不重要,因为它是由 shell 在自己的解析步骤中处理的,然后从实际命令中删除)这意味着“file2作为file1参数运行,并重定向文件中的标准输入cat”。

该错误来自于 shell 尝试cat在当前目录中作为文件打开。该错误发生在 shell 尝试运行该命令之前file2

有关的:这个命令如何合法? "> 文件 1 < 文件 2 猫"

相关内容