最近在学《Unix环境高级编程》,发现里面很多小程序在shell中运行时执行的命令看不太懂,所以复习了下Linux的重定向,这篇是查看了其他人的博客写的,具体哪篇忘记了。。。
作用:引用百度百科上的
主要是用来修改默认的一些东西,对原来系统命令的默认执行方式进行改变
比如我们在shell中执行程序时,一般都会将结果直接输出到屏幕上,有时候输出信息太多了(把shell滚到顶都看不到完整的信息)或者想把输出结果简单的保存到文件(当然你可以在程序中加入写文件函数)时,就会用到重定向的功能;
在shell中执行命令时,它的默认输入就是键盘,默认输出就是屏幕。
最基本的就是输入输出重定向了:
>:输出重定向,将命令的输出写入文件或者设备中,而不是句柄或者屏幕;格式:命令 > 文件名;
下面把程序a.out的输出重定向到output.txt文件中
./a.out > output.txt
<:输入重定向,从给定的文件中读入数据作为命令的输入,不是从键盘或者句柄中读入;格式:命令 < 文件名;
下面从input.txt文件中读入数据作为a.out的输出
./a.out < input.txt
>>:将命令输出追加到给定的文件末尾,而不是覆盖文件;格式:命令 >> 文件名;
上面重定向的输入输出是文件,此外,还可以是句柄;
>&:将一个句柄的输出写入到另一个句柄的输入中;
<&:从一个句柄中读入输入并写到另一个句柄的输出中