【问题标题】:What does this mean >both 2>&1? [duplicate]这是什么意思>both 2>&1? [复制]
【发布时间】:2022-03-01 20:30:48
【问题描述】:

我有这样的问题“将标准输出和标准错误都重定向到同一个文件的正确语法是什么?”答案是>both 2>&1为什么这个答案是正确的请给我解释一下?

这是什么意思? >both 2>&1

【问题讨论】:

标签: linux


【解决方案1】:

>file 表示将标准输出重定向到给定的文件。而2>&1 表示将标准错误重定向到与标准输出相同的描述符。

文件在内部(在代码中)由描述符操作。当你打开一个文件时,系统会给你一个描述符(一个读/写文件的对象)。 Linux 默认为您提供三个描述符:0(标准输入)、1(标准输出)和 2(标准错误)。这3个描述符一般都连接到终端。 Shell(如 bash)使您能够通过使用 <>2> 运算符(对应于 open())来重定向(更改连接)它们。这些后面必须跟一个文件名,但是您可以使用一种特殊的语法来连接另一个,使两个别名都指向同一个文件;因此2>&1 表示将描述符 1 复制到描述符 2(在内部此操作是对 dup() 的调用)。

【讨论】:

    猜你喜欢
    • 2012-04-26
    • 2016-08-18
    • 2014-04-08
    • 2022-12-16
    • 1970-01-01
    • 2016-12-10
    • 2014-12-01
    • 2015-03-12
    相关资源
    最近更新 更多