`
即可偶
  • 浏览: 21231 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

重定向 1>&2 2>&1

 
阅读更多

当初在shell中, 看到">&1"和">&2"始终不明白什么意思.经过在网上的搜索得以解惑.其实这是两种输出.

在 shell 程式中,最常使用的 FD (file descriptor) 大概有三个, 分别是:

0: Standard Input (STDIN)

1: Standard Output (STDOUT)

2: Standard Error Output (STDERR)

在标准情况下, 这些FD分别跟如下设备关联:

stdin(0): keyboard  键盘输入,并返回在前端

stdout(1): monitor  正确返回值 输出到前端

stderr(2): monitor 错误返回值 输出到前端

举例说明吧:

当前目录只有一个文件 a.txt.

[root@redhat box]# ls

a.txt

[root@redhat box]# ls a.txt b.txt         

ls: b.txt: No such file or directory     由于没有b.txt这个文件, 于是返回错误值, 这就是所谓的2输出

a.txt     而这个就是所谓的1输出

再接着看:

[root@redhat box]# ls a.txt b.txt  1>file.out 2>file.err

执行后,没有任何返回值. 原因是, 返回值都重定向到相应的文件中了,而不再前端显示

[root@redhat box]# cat file.out

a.txt

[root@redhat box]# cat file.err

ls: b.txt: No such file or directory

一般来说, "1>" 通常可以省略成 ">".

即可以把如上命令写成: ls a.txt b.txt  >file.out 2>file.err

有了这些认识才能理解 "1>&2 " 和 "2>&1 ".

1>&2   正确返回值传递给2输出通道 &2表示2输出通道

如果此处错写成 1>2, 就表示把1输出重定向到文件2中.

2>&1 错误返回值传递给1输出通道, 同样&1表示1输出通道.

举个例子.

[root@redhat box]# ls a.txt b.txt 1>file.out 2>&1

[root@redhat box]# cat file.out

ls: b.txt: No such file or directory

a.txt

现在, 正确的输出和错误的输出都定向到了file.out这个文件中, 而不显示在前端.

补充下, 输出不只1和2, 还有其他的类型, 这两种只是最常用和最基本的.

 

本文转自:http://chenyubo.javaeye.com/blog/321616

分享到:
评论

相关推荐

    cmd命令的重定向输出 2>&1详解

    主要介绍了cmd命令的重定向输出 2>&1详解,需要的朋友可以参考下

    详解nohup /dev/null 2&1 含义的使用

    ls xxx 1>out.txt 2>&1 nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对 于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制...

    Linux 命令 shell 重定向 >

    Linux 命令 shell 重定向 > 1、清空内容两种方式: cat /dev/null > filename > filename 2、清空文件内容,将显示结果重定向到文件 echo “this is a test” > filename 3、输入输出流组合 0:标准输入 1:标准...

    lushuangyi#ucore-1#输入输出重定向1

    或者上述输出结果为i386-elf-objdump: command not found2>&1和1>&2运行下列代码,可以看出区别:2表示stderr, 1表

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

    主要介绍了shell 1>&2 2>&1 &>filename重定向的含义和区别,需要的朋友可以参考下

    db2 v9重定向恢复

    1》使用命令 db2 restore db db1_dwe from c:\dwe95 taken at 20071213133623 redirect generate script db1.clp ,生成重定向回复脚本db1.clp。 2》修改db1.clp脚本,首先找到 TAKEN AT 20071213133623 这一行,把下...

    基于C++实现简单的(控制台)词法分析器及指令注册【100012163】

    简单的词法分析器:Splitter 除满足普通的参数解析需求,还支持添加关键字,实现 >a-file.txt 分割成 > a-file.txt 的功能。...本 Shell 支持使用 > >> 1> 1>> 2> 2>> &1 &2 和 自定义输入输出和错误输出`。

    shell中1小于/dev/null 2大于1的含义

    >/dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 /dev/null 代表空设备文件 > 代表重定向到哪里,例如:echo “123” > /home/123.txt 1 表示stdout标准输出,系统默认值是1,所以”>/dev/null”等同于”1>/...

    cmd命令行.TXT

    4、>> 重定向符 5、<、>&、<& 重定向符 6、| 命令管道符 7、^ 转义字符 8、& 组合命令 9、&& 组合命令 10、|| 组合命令 11、"" 字符串界定符 12、, 逗号 13、; 分号 14、() 括号 15、! 感叹号

    linux shell 中 2>1的含义

    linux shell 中”2>&1″的含义 脚本: nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_...

    虚拟机文档管理及信息查询

    末行模式 先切换到命令模式,冒号:输出内容重定向:> 覆盖重定向>> 追加重定向注:如果文件本身不存在,重定向会生成新文件查看文件内容 cat 文件路径显示行号 cat -n 文件路径查看文件中包含某字串的行:grep字符...

    输入输出重定向

    当执行Linux程序命令时,会使用到三个东西:**标准输入**(standin),**标准输出**(standout),**标准错误**(standerr) 其对应的描述符如下表: 类别 文件描述符 ...2 ...命令> 文件 2>&1 将标准

    nbtee:一个简单的无阻塞多路复用命名管道重定向器

    bftee 一个简单的无阻塞多路复用命名管道重定向器 编译中 gcc nbtee.c -o nbtee 用法 使用命名管道和缓冲区大小...ping 8.8.4.4 2>&1 | ./nbtee my_named_pipe 80 | gzip > compressed_output.gz & cat my_named_pipe

    计算机病毒与防护:Linux任务调度.pptx

    “/dev/null 2>&1”表示先将标准输出重定向到/dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null,这样日志输出问题就解决了。 系统级与用户级...

    SVN提交时强制添加注释

    1. echo 错误提示信息的时候必须重定向到 stderr ,即 1>&2 2. pre-commit 文件拷贝到 hooks 目录之后,需要 chmod 0755 pre-commit ,给 pre-commit 文件增加可执行权限(或者至少把文件owner改为 svn 服务运行用户...

    expertalks:谈技术

    专家讲座 JavaScript 中的 Promise 日期:2015 年 1 月 31 日 ...使用 >、>>、1>、1>>、2>、2>>、&>、1>&2、2>&1、0<、< 的 I/O 重定向 使用越来越少的寻呼机导航文件 使用 &、bg 和 fg 在后台添加作业 使用 cr

    Linux下的输入/输出重定向.pdf

    Linux环境中支持输入输出重定向,用符号<和>来表示。 0、1和2分别表示标准输入、标准输出和标准错误信息...同时,还可以在这三个标准输入输出之间实现重定向,比如将错误信息重定向到标准输出,可以用 2>&1来实现。

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

    当初在shell中, 看到”>&1″和”>&2″始终不明白什么意思.经过在网上的搜索得以解惑.其实这是两种输出. 在 shell 程式中,最常使用的 FD (file descriptor) 大概有三个, 分别是: 0 是一个文件描述符,表示标准输入...

    DOS批处理高级教程精选合编

    4、>> 重定向符 5、<、>&、<& 重定向符 6、| 命令管道符 7、^ 转义字符 8、& 组合命令 9、&& 组合命令 10、|| 组合命令 11、"" 字符串界定符 12、, 逗号 13、; 分号 14、() 括号 15、! 感叹号 第二章 ...

    ajax跨页面提交表单

    前面提到过重复提交表单问题,处理token口令校验、重定向之外,还有一种经常使用到的方法就是新页面处理表单提交,完成后关闭当前页面,并刷新之前发送请求的页面。 这里使用了artDialog.js 1、文件结构 2、user....

Global site tag (gtag.js) - Google Analytics