什么叫输入输出重定向,就是原来输入输出都各自有标准(默认)方向,但是现在不用默认的就叫重定向。
输入输出都各自有标准(默认)方向分别是键盘,显示器。
Linux 中一切皆文件,包括标准输入设备(键盘)和标准输出设备(显示器)在内的所有计算机硬件都是文件。比如你的U盘需要挂载,然后像访问文件一样访问它。
正题来了,重定向语法格式,命令以ls为例:
输出重定向
ls 1>file#以覆盖的方式,把ls的正确输出结果输出到 file 文件中。
ls 2>file#以覆盖的方式,把ls的错误信息输出到 file 文件中。
同理,如果不是要覆盖,而是追加,则使用:
>>
另外,也有紧凑形式:
command 1>file1 2>file2
其实上面的右箭头可以这么理解:先“输出”到标准1,2,但是不显示出来,而是流向file。
输入重定向
聪明的你会想到将方向改一下就行了。即从file流入标准0,然后从0输入到我们的命令中。
command 0<file
这里的话命令就不能是ls了,因为ls并不需要从0得到输入,但是有很多其他命令是需要的,甚至你自己写的程序比如c++:
int i=0
cin>>i
两者结合
command 0<file1 1>file2 2>file3