linux 日志输出重定向

 

./demo   > /mnt/udisk/heliang-log.log 2>&1 &

这行命令在Unix/Linux系统中执行了几个操作,下面是对它的详细解释:

  1. ./demo:这部分是命令的主体,表示执行当前目录下名为demo的可执行文件。./指的是当前目录,因此这个命令是在告诉系统在当前目录中查找名为demo的文件,并尝试执行它。

  2. >:这个符号用于重定向命令的标准输出(stdout)。标准输出通常是显示在终端上的信息。在这个命令中,>后面跟着的是/mnt/udisk/heliang-log.log,意味着demo命令的输出将被重定向到这个文件中,而不是显示在终端上。

  3. /mnt/udisk/heliang-log.log:这是输出重定向的目标文件路径。如果文件已经存在,它将被覆盖;如果不存在,系统将创建这个文件。这个路径指向挂载在/mnt/udisk目录下的名为heliang-log.log的文件。

  4. 2>&1:这部分是另一个重定向操作,用于将标准错误(stderr,文件描述符为2)重定向到标准输出(stdout,文件描述符为1)。在这个上下文中,由于标准输出已经被重定向到/mnt/udisk/heliang-log.log文件,标准错误也将被重定向到同一个文件。这意味着demo命令的所有输出(无论是正常的输出还是错误信息)都将被写入到heliang-log.log文件中。

  5. &:这个符号用于将命令置于后台执行。这意味着你可以在demo命令运行的同时,继续在终端中执行其他命令。如果没有这个&,终端将等待demo命令执行完成,之后才能接受新的命令输入。

 

 

如果你希望在重定向输出时,如果文件 /mnt/udisk/heliang-log.log 已存在,则在其后面追加内容而不是覆盖它,你可以使用 >> 而不是 >>> 是追加重定向操作符。

因此,你的 shell 命令应该修改为:

 
./demo >> /mnt/udisk/heliang-log.log 2>&1 &

 

这里,>> /mnt/udisk/heliang-log.log 表示将 demo 命令的标准输出追加到指定的日志文件中。2>&1 仍然表示将标准错误重定向到标准输出(在这里,标准输出已经被重定向到文件,因此标准错误也会被追加到同一个文件中)。最后,& 表示在后台执行该命令。

posted @ 2024-11-06 08:35  He_LiangLiang  阅读(58)  评论(0编辑  收藏  举报