当前位置: 技术问答>linux和unix
一些命令不解 01
来源: 互联网 发布时间:2016-02-06
本文导语: find /etc -name "at.deny" -print > find.dt 2>&1 & 不知道后面的“ 2>&1 &”中,除了后台命令&外,剩下的“2>&1”代表什么意思? | &1 更准确的说应该是文件描述符 1, 而1 代表的就是STDOUT_FILENO,...
find /etc -name "at.deny" -print > find.dt 2>&1 &
不知道后面的“ 2>&1 &”中,除了后台命令&外,剩下的“2>&1”代表什么意思?
不知道后面的“ 2>&1 &”中,除了后台命令&外,剩下的“2>&1”代表什么意思?
|
&1 更准确的说应该是文件描述符 1, 而1 代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了
0表示键盘输入
1表示屏幕输出
2表示错误输出
因此,2>&1 就表示 错误信息重定向到 普通输出 的路径下
比如
1> /dev/null 2>&1
先将stdout重定向到/dev/null,再将错误信息重定向到stdout,则错误信息将写入/dev/null,通常用于我们需要结果$?,但又不想看到错误提示的时候
0表示键盘输入
1表示屏幕输出
2表示错误输出
因此,2>&1 就表示 错误信息重定向到 普通输出 的路径下
比如
1> /dev/null 2>&1
先将stdout重定向到/dev/null,再将错误信息重定向到stdout,则错误信息将写入/dev/null,通常用于我们需要结果$?,但又不想看到错误提示的时候