首页
学习
活动
专区
圈层
工具
发布

Linux如何在Bash中将标准错误stderr重定向到stdout标准输出

将命令的输出重定向到文件或将其通过管道传递到另一个命令时,你可能会注意到错误消息已打印在屏幕上。 在Bash和其他Linux Shell中,执行程序时,它使用三个标准I/O流。...command > file command 1> file 要重定向标准错误流(stderr),请使用2>运算符: command 2> file 你可以将stderr和stdout都写到两个单独的文件中...重定向到stdout 将程序的输出保存到文件中时,通常会将stderr重定向到stdout,以便将所有内容都保存在一个文件中。...在Bash中,&>与2>&1的含义相同: command &> file 结论 在命令行上工作时,了解重定向和文件描述符的概念非常重要。...要重定向stderr和stdout,请使用2>&1或&>构造。 如果你有任何问题或反馈,请随时发表评论。

4.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    在 Bash 中如何将标准错误stderr转向标准输出stdout

    在将命令输出转到文件或者另外一个命令的时候,你可能会注意到错误提示打印在屏幕上。 在 Bash 和其他 Linux shells 中,当程序执行时,它使用三个标准的 I/O 流。...command > file command 1> file 将标准错误转向,使用2>操作符: command 2> file 你也可以将标准错误stderr和标准输出stdout转向到不同的文件: command...转向stdout 当保存程序输出到文件时,通常将标准错误stderr转向stdout,以便在同一个文件中记录完成信息。...在 Bash 中 &>和2>&1 一个意思: command &> file 四、总结 在使用命令行的时候,理解转向和文件描述符的概念是非常重要的。...想要将标准错误stderr转向标准输出stdout,使用2>&1和&>。

    2.1K30

    C++中fprintf()函数与stdout、stderr

    stdout和stderr的类型都是FILE*,在stdio.h中定义。默认情况下,stdout和stderr中的数据都会被打印到屏幕上。 ...;  因为在“2 stdout和stderr”中提到,默认情况下,stdout和stderr中的数据都会被打印到屏幕上,所以此时的输出如图1所示。 ...图1 默认输出  2.2 重定向输出  可以通过指令的方式将stdout和stderr的输出修改为指定的文件中。 ...需要注意的是,使用默认方式重定向,只能重定向stdout,而不能重定向stderr,即此时stdout流中的数据保存到了1.txt,而stderr流中的输入依然在屏幕中显示,如图2、图3所示。 ...图3 默认重定向的目的文件  2.2.2 参数指定方式  默认方式重定向只能重定向stdout流中数据的目的,可以通过指定参数的方式重定向stdout流和stderr流中数据的目的,如图4所示。

    3.6K01

    3分钟阅读 | 最难用的 Bash ,最常用的输入输出重定向

    引言 将命令的输出重定向到文件,或将其通过管道传递到另一个命令时,你可能会注意到错误消息会被打印在屏幕上。 ? 在Bash和其他Linux Shell中,执行程序时,它使用三个标准 I/O 流。...command > file command 1> file 要重定向标准错误(stderr),请使用2>运算符: command 2> file 你可以同时写入stderr和写入stdout两个单独的文件...到stdout 将程序的输出保存到文件中时,重定向stderr到 stdout很常见,因此你可以将所有内容都保存在一个文件中。...在Bash中&>具有以下含义2>&1: command &> file 写在最后 在命令行上工作时,了解重定向和文件描述符的概念非常重要。...要重定向stderr和stdout,请使用2>&1或&>构造。

    1K10

    shell入门第十讲

    1、Linux标准流 在Linux中, 标准输入 是标准输入流,这接受文本作为其输入,我们看到的stdin就是标准输入流之意(也称为输入重定向)。...那么在Linux标准流中,stdout和stderr也同样如此。如果我们使用了Linux标准流的功能,当我们执行一个命令成功后,那么终端打印的信息也将会被传送至stdout中。...当我们执行命令失败后,那么终端打印的报错信息也将会被传送至stderr中。 1.1、stdout 输出重定向我们一般使用 >来表示,比如将信息输出重定向到一个文件中。...1.4、追加信息输出重定向 我们上面的stdout和stderr只是将信息输出到一个文件中,如果再次重定向输出的话,文件之前的内容将会被覆盖掉,只会写入最新的内容到文件中,比如: bash [root@...: 'cat' bash: catt: 未找到命令… ## 这是新的错误信息 相似命令是: 'cat' 1.5、同时进行标准输出和错误输出至文件 在企业中往往是这么干的,写一个脚本,包含很多命令,那么我们需要将打印服务信息的命令写上

    98720

    Shell脚本攻略04-玩转文件描述符及重定向

    最常见的文件描述符是stdin、 stdout和stderr。 我们甚至可以将某个文件描述符的内容重定向到另一个文件描述符中。 下面给出一些对文件描述符进行操作和重定向的例子。...理论知识 在编写脚本的时候会频繁使用标准输入(stdin)、标准输出(stdout)和标准错误(stderr)。 通过内容过滤将输出重定向到文件是我们平日里的基本任务之一。...和stdout重定向到同一个文件中 还可以利用下面这个更好的方法将stderr转换成stdout,使得stderr和stdout 都被重定向到同一个文件中 $ cmd >output.txt 2...: pwd2: command not found ---- 将stderr的输出重定向到 /dev/null 有时候,在输出中可能包含一些不必要的信息(比如调试信息)。...类似地,使用 /dev/stderr代表标准错误, /dev/stdout代表标准输出。 这些特殊的设备文件分别对应stdin、 stderr和stdout。

    1.1K10

    《Linux命令行与shell脚本编程大全》第十五章 呈现数据

    15.1 理解输入和输出 现在知道两种显示脚本输出的方法 1)在显示器屏幕上显示 2)将输出文件重定向到文件中 15.1.1 标准文件描述符 Linux系统将每个对象当做文件处理。...>>  表示追加到文件 注意:用了输出重定向,shell并未将错误消息重定向到输出重定向文件中。错误消息仍会显示在显示器中。 3.STDERR 标准错误(2) STDERR文件描述符来处理错误消息。...shell或shell中运行的程序和脚本出错时生成的错误消息都会发送到这个位置。 默认情况下STROUT和STDERR指向同样的地方(显示器)。但是STDERR不会随着STDOUT重定向而发生改变。...$ls -al test1 test2 test3 badfile &> AllLog.txt 这样表示将STDOUT和STDERR重定向到同一个文件AllLog.txt中了。...15.2 在脚本中重定向输出 有两种方法: 1)临时重定向行输出 2)永久重定向脚本中的所有命令 15.2.1 临时重定向 可以单独将一行重定向到STDERR。

    1.5K60

    Shell 输入输出重定向

    栗子 执行下面的 who 命令,它将命令的完整的输出重定向在用户文件中(users): $ who > users 执行后,并没有在终端输出信息,这是因为输出已被从默认的标准输出设备(终端)重定向到指定的文件...标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。...---- 如果希望将 stdout 和 stderr 合并后重定向到 file,可以这样写: $ command > file 2>&1 或者 $ command >> file 2>&1 ---- 如果希望对...stdin 和 stdout 都重定向,可以这样写: $ command file2 command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2...---- 如果希望屏蔽 stdout 和 stderr,可以这样写: $ command > /dev/null 2>&1 注意:0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出

    1.3K40

    UNIX 系统Shell 输入输出重定向命令

    需要注意的是文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。 ---- 输出重定向 重定向一般通过在命令间插入特定的符号来实现。...实例 执行下面的 who 命令,它将命令的完整的输出重定向在用户文件中(users): $ who > users 执行后,并没有在终端输出信息,这是因为输出已被从默认的标准输出设备(终端)重定向到指定的文件...标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。...如果希望将 stdout 和 stderr 合并后重定向到 file,可以这样写: $ command > file 2>&1 或者 $ command >> file 2>&1 如果希望对 stdin...如果希望屏蔽 stdout 和 stderr,可以这样写: $ command > /dev/null 2>&1 注意:0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(

    1.2K30

    linux: 深入理解Shell中的输出重定向和错误处理

    在Shell中,有三种主要的I/O流: stdout(标准输出)- 文件描述符为1 stderr(标准错误)- 文件描述符为2 stdin(标准输入)- 文件描述符为0 如图展示了两个 nc 命令的运行情况...分析第一个命令: bash nc -zv 10.0.0.1 443 2>&1 >> /dev/null 这个命令中的 2>&1 表示将标准错误重定向到当前标准输出的位置,但是这个操作是在 >> /dev...当我们想要丢弃所有输出时,正确的方法是先重定向 stdout 到 /dev/null,然后再将 stderr 重定向到 stdout。这样,所有的输出都不会显示在终端上。...在系统管理和自动化任务中,经常需要确保输出不会干扰脚本的执行或是污染日志文件。因此,合理地利用重定向来控制脚本的输出,是每一个系统管理员和脚本开发者都需要掌握的技能。...通过上述分析,我们可以看到,即使是在看似简单的重定向操作中,不同的顺序和方式也会导致完全不同的结果。掌握这些细节,将使我们在Shell脚本开发中更加得心应手。

    93510

    bash中 2>&1 & 的解释

    一、标准输入,标准输出,标准错误 bash中0,1,2三个数字分别代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,...准确的说是用户终端控制台),标准错误(出错信息输出) 二、输入输出重定向 输入输出可以重定向,所谓重定向输入就是在命令中指定具体的输入来源,譬如 cat 重定向为cat命令的输入源...三、输出到一个终端 默认输入只有一个(0,STDIN_FILENO),而默认输出有两个(标准输出1 STDOUT_FILENO,标准错误2 STDERR_FILENO)。...但是某些情况下,我们希望在一个终端下看到所有的信息(包括标准输出信息和错误信息),要怎么办呢?对了,你可以使用我们上面讲到的输出重定向。思路有了,怎么写呢? 非常直观的想法就是2>1。...即1在此处不被解释为STDOUT_FILENO,而是文件1。 五、结论 到了此时,你应该也能猜到2>&1的用意了。不错,2>&1就是用来将标准错误2重定向到标准输出1中的。

    1.3K20

    【Linux系统#7】: 重定向(补充)

    在 Linux 中,标准错误和标准输出是两个不同的流,通常它们都连接到终端,但可以独立重定向。...重定向的工作机制 当你使用重定向符号 > 时,系统会将标准输出(stdout)重定向到指定的文件 标准错误(stderr)流的重定向不会自动发生,除非明确指定。...练习 bash中,需要将脚本 demo.sh 的标准输出和标准错误输出重定向至文件demo.log,以下哪些用法是正确的 [多选] 正确答案: A B C D A. bash demo.sh &>demo.log...分析: 在命令的重定向中, >表示重定向,0 表示标准输入,1 表示标准输出,2 表示标准错误 如果需要将标准输出和标准错误输出重定向至文件demo.log; 比较典型的方式是:bash demo.sh...&> file 表示将标准输出stdout和标准错误输出stderr重定向至指定的文件file中。

    13700
    领券