如果命令的输入不是来源于键盘;或者命令的结果输出不是在屏幕上,而是要重定向输出到某个文件,那我们就要用”<“和”>”来进行输入输出重定向。
<指向谁,谁就是被输出的对象。(这话怎么听起来这么怪呢🤔)。
举个例子,cat指令。我们一般用cat都是cat helloworld,实际上我们是省略了<输出重定向这个字符而已。完整的指令应该为:
cat < helloworld
表示的意思是:将helloworld文档内的内容输入给cat指令。
如果你想把上面这个cat指令的结果输出到另一个名为output的文件,那你可以用这条指令。
cat <helloworld >output
除此之外,输出重定向还可以带上三种参数。
cat helloworld 2>error
将标准错误输出重定向到error文件中。
cat helloworld &>error
将标准输出和标准错误输出都重定向到helloworld。
cat helloworld >test 2>&1
将标准输出和标准错误输出都重定向到helloworld。
最后一个需要细说。具体过程为先将标准输出(1)重定向到helloworld。再将标准错误输入重定向到标准输出(1),由于标准输出已经重定向到了helloworld。所以实际的效果为为2>&1>helloworld。
再举个例子,假设某文件夹下只有一个a文件夹。那么输入
ls a b
此时输出的结果既有标准输出,又有标准错误输出。
你可以把两个输出分别输出到两个文件,比如
ls a b 1>ok 2>error
也可以把输出和错误输出都写入到一个文件夹
ls a b &>result
或 ls a b 1>result 2>&1