重定向日志输出
./demo >> a1.log 2>&1
在 CentOS 7 或其他类 Unix 系统中,当你想要将命令的标准输出(stdout)和标准错误输出(stderr)都重定向到同一个文件中时,你确实可以使用你所提到的重定向结构。这里是一个准确的例子,以及它的解释:
bash复制代码
| ./demo > a1.log 2>&1 |
这个命令的解释如下:
-
./demo:这是你想要执行的命令或脚本。.表示当前目录,/是目录分隔符,demo是命令或脚本的名称。 -
>:这是标准输出(stdout)的重定向操作符。它会将命令的标准输出重定向到指定的文件中。如果文件已存在,它会被覆盖;如果文件不存在,它会被创建。 -
a1.log:这是你想要将标准输出写入的文件名。 -
2>&1:这部分是标准错误(stderr)的重定向。在 Unix 和类 Unix 系统中,1通常代表标准输出(stdout),而2代表标准错误(stderr)。这个表达式2>&1的意思是将标准错误(文件描述符 2)重定向到与标准输出(文件描述符 1)相同的位置,也就是a1.log文件。
综上所述,整个命令 ./demo > a1.log 2>&1 的意思是:执行 ./demo 命令,将其标准输出重定向到 a1.log 文件中,并将其标准错误也重定向到同一个 a1.log 文件中。这样,你就可以在 a1.log 文件中看到命令的输出和任何错误消息了。
如果你想要追加内容到文件而不是覆盖它,你可以使用 >> 而不是 >,像这样:
bash复制代码
| ./demo >> a1.log 2>&1 |
这样,demo 命令的输出和错误就会被追加到 a1.log 文件的末尾,而不是覆盖文件内容。

浙公网安备 33010602011771号