路还长 别太狂 以后指不定谁辉煌

2>&1 和 &> 的解释

Linux的IO输入输出有三类

Standard Input 代码 0

Standard Output 代码 1

Standard Error 代码 2

ls thereisno 1> out.txt 标准输出重定向 也可以不加1写成 ls thereisno > out.txt

ls thereisno 2> out.txt 标准错误重定向

ls thereisno > out.txt 2>&1 把错误定向到标准输出,然后统一重定向.但这是所有“输出”重定向(&>中的&后可以是任意1,2),不能重定向“输入”的内容

ls thereisno &> out.txt 所有IO重定向(&>中的&可以代表任意,0,1,2,3……)

举个例子:ls test.sh test1.sh >success.txt  2>&1

将前面执行结果的标准输出流写入success.txt文件,省略1,等同于ls
test
.sh test1.sh 1>success.txt

而执行出现的错误用2 定向,2>error.txt。用&1表示和1绑定到一起,输出到一个文件,用&表示绑定到某一个文件标示符指定的文件。&-表示关闭。

如果后面什么都不写,lstest.sh test1.sh,默认输出到屏幕上。

&>代表全部输出流一起重定向。

/dev/null 2>&1 :命令的意思是将标准输出和错误输出全部重定向到/dev/null中,也就是将产生的所有信息丢弃.

/dev/null 代表空设备文件

> 代表重定向到哪里,例如:echo "123" > /home/123.txt

1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"

2 表示stderr标准错误

& 表示等同于的意思,2>&1,表示2的输出重定向等同于1

”>/dev/null 2>&1″ 也可以写成 “1>/dev/null 2>&1″。命令的执行过程:

1>/dev/null :首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。

2>&1 :接着,标准错误输出重定向到标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

简单地说command > file 2>filecommand > file 2>&1 有什么不同的地方.

首先~command > file 2>file 的意思是将命令所产生的标准输出信息,和错误的输出信息送到file 中.command > file 2>file 这样的写法,stdout和stderr都直接送到file中, file会被打开两次,这样stdout和stderr会互相覆盖,这样写相当使用了FD1和FD2两个同时去抢占file
的管道.
command >file 2>&1 这条命令就将stdout直接送向file,stderr 继承了FD1管道后,再被送往file,此时,file 只被打开了一次,也只使用了一个管道FD1,它包括了stdout和stderr的内容.
从IO效率上,前一条命令的效率要比后面一条的命令效率要低,所以在编写shell脚本的时候,较多的时候我们会用command > file 2>&1 这样的写法.

最新文章

  1. Git : SSH 协议服务器
  2. c#中奖算法的实现
  3. Java面试:1
  4. Android开发环境搭建之Eclipse/AndroidStudio
  5. SQL*Loader之CASE4
  6. stdafx.h的作用
  7. VBA Excel 引用 API,以实现“透明”
  8. POJ_1321——棋盘问题,回溯+剪枝
  9. 【原创】java中的父进程子进程 —— 坑爹的java Runtime.getRuntime().exec
  10. HDU1007--Quoit Design(平面最近点对)
  11. POJ1845-Sumdiv大数约数和
  12. 关于video标签移动端开发遇到的问题,获取视频第一帧,全屏,自动播放,自适应等问题
  13. Asp.net Web Api开发(第四篇)Help Page配置和扩展
  14. python实现将base64编码的图片下载到本地
  15. servlet之ServletRequest与ServletResponse (三)
  16. CentOS 与Ubuntu 下配置IP地址
  17. asp.net WebService如何去掉asmx后缀
  18. MySQL(5)---锁
  19. 如何让vba与java的TripleDES算法通用
  20. Select2 4.0.5 API

热门文章

  1. 20 ViewPager Demo3指示器
  2. Struts 2 标签库
  3. GDAL库扩展Landsat系列MTL文件格式支持
  4. Python读取JSON数据,并解决字符集不匹配问题
  5. javascript之正则表达式
  6. Tomcat性能优化及常用命令整理
  7. Cocos2D iOS之旅:如何写一个敲地鼠游戏(十):创建游戏逻辑
  8. 查找maven中的groupId,artifactId,version等信息的方式
  9. ROS(indigo)一个简单灵活和可扩展的2D多机器人仿真器stdr_simulator
  10. iOS中 本地通知/本地通知详解 韩俊强的博客