我可以更改`nohup.out`的名字吗?

当我运行nohup some_command & ,输出到nohup.out ; man nohup说,看看info nohup反过来说:

如果标准输出是一个terminal,命令的标准输出被附加到文件'nohup.out'; 如果不能写入,则附加到文件'$ HOME / nohup.out'; 如果不能写入,则该命令不运行。

但是如果我已经有一个命令使用nohup输出到/nohup.out而我想运行另一个nohup命令,我可以将输出redirect到nohup2.out吗?

 nohup some_command &> nohup2.out& 

和瞧。


Bash版本的旧语法<4:

 nohup some_command > nohup2.out 2>&1& 

出于某种原因,上面的答案对我来说并不合适。 运行后,我没有返回到命令提示符,因为我预期跟踪&。 相反,我只是试着用

 nohup some_command > nohup2.out& 

它就像我想要的那样工作。 离开这里,以防其他人处于相同的情况。 运行Bash 4.3.8以供参考。

由于文件处理程序指向Linux / Unix系统上的i节点(独立于文件名存储)您可以在启动nohup something&后,随时将默认nohup.out重命名为任何其他文件名。 所以也可以做到以下几点:

 $ nohup something& $ mv nohup.out nohup2.out $ nohup something2& 

现在something增加了nohup2.outsomething2nohup.out

上面的方法会在nohup命令上面运行时删除你的输出文件数据。

在用户定义的文件中追加输出,您可以在nohup命令中使用>>

 nohup your_command >> filename.out & 

这个命令将在文件中附加所有的输出而不删除旧的数据。