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


254

当我运行时nohup some_command &,输出到nohup.out; man nohup说看info nohup哪个依次说:

如果标准输出是终端,则命令的标准输出将附加到文件“ nohup.out”;如果无法写入,则将其附加到文件'$ HOME / nohup.out';如果无法写入该命令,则该命令不会运行。

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

Answers:


416
nohup some_command &> nohup2.out &

和瞧。


Bash版本<4的旧语法:

nohup some_command > nohup2.out 2>&1 &

4
@ismail,据我所知,这会将输出从stdout和nohup.out定向到nohup2.out。那怎么2>&1&办?
David LeBauer 2010年

12
2>&1重定向stderr到与stdout本例相同的输出文件nohup2.out
ismail 2010年

17
在Bash 4中,两个重定向可以缩写为一个&> nohup2.out
短暂

1
我试过了&> nohup2.out,它可以正常工作,但是如何知道您的bash版本呢?
monkut 2012年

9
@monkut bash --version
ismail

58

由于某种原因,以上答案对我不起作用;我没有像预期的那样在运行尾随&后返回命令提示符。相反,我只是尝试

nohup some_command > nohup2.out&

就像我想要的那样工作。万一其他人处于相同的情况下,就把它留在这里。运行Bash 4.3.8以供参考。


12

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

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

现在something增加了线路nohup2.outsomething2nohup.out


10

每当您在nohup命令上方运行时,上述方法都会删除您的输出文件数据。

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

nohup your_command >> filename.out &

此命令将所有输出追加到文件中,而不会删除旧数据。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.