Shell重定向&>file、2>&1、1>&2的区别

转载 2013年12月02日 20:31:23

shell上:
0表示标准输入
1表示标准输出
2表示标准错误输出
> 默认为标准输出重定向,与 1> 相同
2>&1 意思是把 标准错误输出 重定向到 标准输出.

&>file 意思是把 标准输出 和 标准错误输出 都重定向到文件file中

用例子说话:


1. grep da * 1>&2 
2. rm -f $(find / -name core) &> /dev/null
上面两例中的 & 如何理解,&不是放到后台执行吗?

牛解:

1.&>file或n>&m均是一个独立的重定向符号,不要分开来理解。

2.明确文件和文件描述符的区别。

3.&>file表示重定向标准输出和错误到文件
例如:
rm -f $(find / -name core) &> /dev/null,/dev/null是一个文件,这个文件比较特殊,所有传给它的东西它都丢弃掉。

4.n>&m表示使文件描述符n成为输出文件描述符m的副本。这样做的好处是,有的时候你查找文件的时候很容易产生无用的信息,如:2> /dev/null的作用就是不显示标准错误输出;另外当你运行某些命令的时候,出错信息也许很重要,便于你检查是哪出了毛病,如:2>&1
例如:
注意,为了方便理解,必须设置一个环境使得执行grep da *命令会有正常输出和错误输出,然后分别使用下面的命令生成三个文件:

grep da * > greplog1
grep da * > greplog2 1>&2   
grep da * > greplog3 2>&1  //grep da * 2> greplog4 1>&2 结果一样
#查看greplog1会发现里面只有正常输出内容
#查看greplog2会发现里面什么都没有

#查看greplog3会发现里面既有正常输出内容又有错误输出内容



相关文章推荐

Shell重定向 &>file、2>&1、1>&2 、/dev/null的区别

在shell脚本中,默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入)、标准输出(输出到屏幕)、标准错误(也是输出到屏幕),它们分别对应的文件描述符是0,1,2 。 >  默认...

shell 1>&2 2>&1 &>filename重定向的含义和区别

转载自: http://www.jb51.net/article/64183.htm shell 1>&2 2>&1 &>filename重定向的含义和区别 在 shell 程式...

[转]shell 1>&2 2>&1 &>filename重定向的含义和区别

>&1”和”>&2”

shell 输出重定向(> >> 2>&1)

1、首先,bash中0,1,2三个数字分别代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制...

Linux shell中的重定向之2>&1

经常可以在一些脚本,尤其是在crontab调用时发现如下形式的命令调用 /tmp/test.sh > /tmp/test.log 2>&1 前半部分/tmp/test.sh > /tmp/te...
  • rudyn
  • rudyn
  • 2012年05月22日 10:27
  • 479

Linux Shell脚本编程--(linux空设备文件和重定向)>/dev/null 2>&1

linux空设备文件和重定向 /dev/null代表空文件设备 1表示系统标准输出,系统默认值是1, > /dev/null等同于1 > /dev/null 对于 >dev/null 2>&1 1>...

LINUX SHELL 中 2>&1 重定向的问题

#man bash 里面有一段有关重定向的描述:        Note that the order of redirections is significant.   For  example,...

/dev/null 2>&1的意思(可以直接参考shell重定向那篇,/dev/null是空设备)

路还长 别太狂 以后指不定谁辉煌 2>&1 和 &> 的解释 Linux的IO输入输出有三类 Standard Input 代码 0 Standard Output 代码 1 Stand...

shell命令之重定向输出 1,2>,>,>>

fprintf(stderr,..) fprintf(stdout,..) printf(..)
  • Hesy_H
  • Hesy_H
  • 2017年10月16日 21:47
  • 34

ETH挖矿软件挖矿教程-开发者1%〜2%费用重定向到您的钱包

NoDevFee Claymore.s.Dual.Ethereum.Miner开发人员1%〜2%的费用重定向到您的钱包。 它是什么? 当您使用Claymore的Dual Ethe...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Shell重定向&>file、2>&1、1>&2的区别
举报原因:
原因补充:

(最多只允许输入30个字)