鸟哥Linux学习之——数据流重定向

一、标准输出与标准错误输出
在说明数据流重定向之前,需要先了解几个概念,即“标准输出(standard output)”和“标准错误输出(standard error output)”。
简单来说,标准输出是指命令执行后所回传的正确的信息,而标准错误输出为命令执行失败后所回传的错误信息。
举个例子:
标准输出:cat后会将文件的内容显示出来
                   鸟哥Linux学习之——数据流重定向
标准错误输出:cat不存在的文件,会输出一个错误信息
                   鸟哥Linux学习之——数据流重定向

二、数据流重定向
通过上面的例子知道了标准输出与标准错误输出,那么当某些情况下,屏幕上同时出现正确信息与错误信息,会有混乱的感觉,此时,就需要使用数据流重定向将标准输出与标准错误输出分别传送到其他文件或设备上去。传送数据的特殊字符如下:
1、标准输出(stdout):代码为1,使用>或>>(1>或1>>),不加代码时,默认为1
说明:将正确信息不在屏幕输出,而是转存到一个文件中
例:
鸟哥Linux学习之——数据流重定向
2、标准错误输出(stderr):代码为2,使用2>或2>>
说明:将错误信息不在屏幕输出,而是转存到一个文件中
3、标准输入(stdin):代码为0,使用<或<<
说明:可以理解为以某个文件内容或命令结果代替键盘输入

ps:
1>:以覆盖的方式将正确的数据输出到指定的文件或设备上
1>>:以累加的方式将正确的数据输出到指定的文件或设备上
2>:以覆盖的方式将错误的数据输出到指定的文件或设备上
2>>:以累加的方式将错误的数据输出到指定的文件或设备上
将正确信息和错误信息输出到同一个文件:举例说明:
find /home -name .bashrc > list 2>&1
find /home -name .bashrc &> list

三、其他用法
1、>>也可以用来创建文件,或者给文件添加内容
例:echo 'string' >> a.txt