Linux 2>&1

转载 2015年07月09日 10:09:18


转自:http://www.cnblogs.com/yangyongzhi/p/3364939.html


2>&1使用

一 相关知识

1)默认地,标准的输入为键盘,但是也可以来自文件或管道(pipe |)。
2)默认地,标准的输出为终端(terminal),但是也可以重定向到文件,管道或后引号(backquotes `)。
3) 默认地,标准的错误输出到终端,但是也可以重定向到文件。
4)标准的输入,输出和错误输出分别表示为STDIN,STDOUT,STDERR,也可以用0,1,2来表示。
5)其实除了以上常用的3中文件描述符,还有3~9也可以作为文件描述符。3~9你可以认为是执行某个地方的文件描述符,常被用来作为临时的中间描述符。


二 实例

1)command 2>errfile : command的错误重定向到文件errfile。
2)command 2>&1 | ...: command的错误重定向到标准输出,错误和标准输出都通过管道传给下个命令。
3)var=`command 2>&1`: command的错误重定向到标准输出,错误和标准输出都赋值给var。
4)command 3>&2 2>&1 1>&3 | ...:实现标准输出和错误输出的交换。
5)command 2>&1 1>&2 | ...     (wrong...) :这个不能实现标准输出和错误输出的交换。因为shell从左到右执行命令,当执行完2>&1后,错误输出已经和标准输出一样的,再执行 1>&2也没有意义。


三 "2>&1 file"和 "> file 2>&1"区别

1)cat food 2>&1 >file :错误输出到终端,标准输出被重定向到文件file。
2)cat food >file 2>&1 :标准输出被重定向到文件file,然后错误输出也重定向到和标准输出一样,所以也错误输出到文件file。


四 注意
通 常打开的文件在进程推出的时候自动的关闭,但是更好的办法是当你使用完以后立即关闭。用m<&-来关闭输入文件描述符m,用 m>&-来关闭输出文件描述符m。如果你需要关闭标准输入用<&-; >&- 被用来关闭标准输出。


五 同时输出到终端和文件 copy source dest | tee.exe copyerror.txt


六 参考

1)http://docstore.mik.ua/orelly/unix/upt/ch45_21.htm
2)http://www.unix.com/shell-programming-scripting/34011-meaning-dev-null-2-1-a.html
3)http://docstore.mik.ua/orelly/unix/upt/ch08_13.htm


Linux里的2>&1究竟是什么

我们在Linux下经常会碰到nohup command>/dev/null 2>&1 &这样形式的命令。首先我们把这条命令大概分解下首先就是一个nohup表示当前用户和系统的回话下的进城忽略响应HUP...
  • GGxiaobai
  • GGxiaobai
  • 2016年12月07日 16:11
  • 25209

Unix / Linux世界里的4-2-1

 Unix / Linux世界里的4-2-1在Unix / Linux世界里,4代表可读( r ),2代表可写入 ( w ),1代表可执行 ( x )如果拥有7 = 4+2+1 的权限,即代表这个人可...
  • 21aspnet
  • 21aspnet
  • 2004年10月22日 12:36
  • 8084

linux 命令 $1 $2 $@ $*等等含义

linux 命令 11 2 @@ *等等含义:
  • xingxingdeyuanwang6
  • xingxingdeyuanwang6
  • 2015年08月11日 11:28
  • 451

linux shell 中的 2>&1 用法说明

linux中有三种标准输入输出,分别是 STDIN,STDOUT,STDERR,对应的数字是 0,1,2。STDIN 是标准输入,默认从键盘读取信息; STDOUT 是标准输出,默认将输出结果输出至...
  • huangfei711
  • huangfei711
  • 2016年04月04日 22:54
  • 2851

linux中crontab定时器里的"2>&1"含义解释:

linux中crontab定时器里的"2>&1"含义解释: 在crontab定时器中有如下类似的脚本: 0 2 * * * php /data/test/test.php >/dev/null 2...
  • michealcxt
  • michealcxt
  • 2014年03月06日 16:03
  • 2104

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

当初在shell中, 看到">&1"和">&2"始终不明白什么意思.经过在网上的搜索得以解惑.其实这是两种输出. 在 shell 程式中,最常使用的 FD (file descriptor) ...
  • NewThinker_wei
  • NewThinker_wei
  • 2012年11月24日 09:51
  • 9897

ubuntu/linux 2>&1解释

shell中可能经常能看到:>/dev/null2>&1 命令的结果可以通过%>的形式来定义输出 分解这个组合:“>/dev/null2>&1” 为五部分。 1:>代表重定向到哪里,例如:echo"1...
  • yufenghyc
  • yufenghyc
  • 2015年05月12日 16:33
  • 1300

Linux 操作系统的权限为什么是1,2,4 而不是 1,2,3?如何用二进制来做权限管理

1. 二进制做权限的优点 大家都知道,在Linux操作系统中,x - 可执行权限,w - 可写权限 , r - 可读权限。其权限值分别是1,2,4,但是有没有想过为什么是1,2,4 而不是 1,2,...
  • followMyInclinations
  • followMyInclinations
  • 2017年05月15日 10:56
  • 1076

linux 重定向 1>&2 2>&1的各种变形理解

ll a.txt b.txt 将输出一条标准输出和一条标准错误。 如下: /bin/ls: b.txt: No such file or directory ...
  • u011795520
  • u011795520
  • 2016年05月12日 21:59
  • 447

Linux脚本之>/dev/null 2>&1,以及2>1 VS 2>&1

1. 标准输入stdin文件描述符为0,标准输出stdout文件描述符为1,标准错误stderr文件描述符为2 2. /dev/null 空设备,相当于垃圾桶 3. 重定向符号:> 3. 2>1...
  • mao_kun
  • mao_kun
  • 2016年03月10日 23:06
  • 818
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux 2>&1
举报原因:
原因补充:

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