一、Linux中三个数据流:
标准输入流(stdin)、标准输出流(stdout)、标准错误(stderr)
三个数据流其实就是三个文件
在Linux中文件是具备文件描述符的:比如0、1、2,分别对应上面三个流,其他的文件都是从3开始标号的以此类推,都指向了终端,重定向就是改变其指向。
二、使用
符号:
>:一般是指将输出的结果指引到某个文件。
比如:ls /home > 1.txt
将home下的输出内容重定向到文件1.txt中。
注意:文件不存在会创建,存在会覆盖或者说删除再创建
>>:将输出的结果追加到指定的文件
比如:ls /home >> 1.txt
将home下的输出内容追加到或者说重定向到文件1.txt中
注意:文件不存在会创建,存在就会追加。
2>:使用错误流将错误信息重定向到文件中
比如:不存在/xx目录
ls /xx 2> 1.txt
将不存在的xx的错误输出信息重定向到1.txt中
注意:如果文件1.txt不存在会自动创建,也可以使用2>>,文件不存在会创建,存在会追加。
&>:这个一般是指对于多个数据流的操作要使用的符号
比如:ls /xx /home &> 1.txt
将home下的输出内容和不存在的xx的错误信息的输出内容重定向到文件中而不是打印显示在终端。
三、总结
符号>和符号>>完全可以和2、&配合使用
>:指定的文件不存在会创建
>>:指定的文件不存在会创建,文件存在就会追加