管道输出
1.命令输出结果
正确输出如下,其他输出为错误输出
以非root用户执行以下操作:
<1>重定向正确输出
find /etc -name passwd > file
“ > ”符号会覆盖掉file文件原有的内容, 要想向file文件追加内容,使用“ >> ”符号
<2>追加正确输出
find /etc -name passwd >> file
<3>重定向错误输出
find /etc -name passwd 2> file
<4>追加错误输出
find /etc -name passwd 2>> file
<5>重定向所有输出
find /etc -name passwd &> file
<6>追加所有输出
find /etc -name passwd &>> file
<7>“改邪归正”输出
所谓”改邪归正”,即,2>&1,将标准错误输出2重定向到标准输出中,”2>”就是标准错误输出,”&”是为了让bash将1解释成标准输出而不是文件名字为1的文件。
2.管道
管道符号“ | ”,其作用是,在前一个命令的基础上,在交给下一个命令进一步处理(前面的命令的输出当作后面的命令输入)
注:管道只允许正确的输出通过
<1>将错误标准输出解释为正确输出,通过管道
<2>将错误标准输出扔到“垃圾桶”,正确输出通过管道
<3> > /dev/null 2>&1和2>&1 > /dev/null的区别
> /dev/null 2>&1含义:
首先表示标准输出重定向到空设备文件,接着,标准错误输出重定向标准输出,因为之前标准输出已经重定向到空设备文件,所以标准错误输出也重定向到空设备文件,于是,管道什么也没有通过
2>&1 > /dev/null 含义:
首先,标准错误输出重定向标准输出,再次之前标准输出并没有重定向,所以标准错误重定向为的标准输出被“忽略”,然后,标准输出重定向到空设备文件,于是,通过管道的就是之前被剩下的输出
<4> | tee 复制输出