将所有输出重定向到文件

这个问题在这里已经有了答案:

  • 我怎样才能重定向并追加stdout和stderr到Bash文件? 6个答案

  • 该部分写入stderr,使用2>重定向它。 例如:

    foo > stdout.txt 2> stderr.txt
    

    或者如果你想在同一个文件中:

    foo > allout.txt 2>&1
    

    注意:这适用于(ba)sh,检查你的shell是否有正确的语法


    所有POSIX操作系统都有3个流:stdin,stdout和stderr。 stdin是输入,它可以接受stdout或stderr。 stdout是主要输出,它用>>>|重定向 。 stderr是错误输出,它被单独处理,以便任何异常不会传递给命令或写入可能会中断的文件; 通常,这被发送到某种类型的日志,或者直接转储,即使stdout被重定向。 要将两者重定向到相同的地方,请使用:

    command &> /some/file

    编辑 :感谢扎克指出,上述解决方案是不可移植的 - 使用,而不是:

    *command* > file 2>&1 
    

    如果您想要消除错误,请执行以下操作:

    *command* 2> /dev/null
    

    例如,要在控制台上获取输出,并在文件file.txt获取输出。

    make 2>&1 | tee file.txt
    

    注意: & (在2>&1 )指定1不是文件名,而是文件描述符。

    链接地址: http://www.djcxy.com/p/24143.html

    上一篇: Redirect all output to file

    下一篇: How do I compare two string variables in an 'if' statement in Bash?