屏幕中的 Grep 不将输出保存到日志文件

VC_*_*ork 1 linux bash grep gnu-screen

我正在尝试对我的文件执行很长的 grep 扫描。因为屏幕将在执行后关闭,所以我尝试写入日志文件以保存 grep 的输出。出现以下命令:

 screen fgrep "needle" /mnt/Volume_volume/haystack/* >> /mnt/Volume_volume/log.txt
Run Code Online (Sandbox Code Playgroud)

不幸的是日志文件是空的。什么地方出了错?保存 screen 的输出而不是 grep 吗?我该如何解决?

Art*_*rFH 5

您编写的命令的意思是:运行screen fgrep "needle" /mnt/Volume_volume/haystack/*该命令并将结果附加到文件中/mnt/Volume_volume/log.txt。屏幕会在其输出上显示注释,这就是您在日志文件中得到的内容。

如果你真的想使用屏幕,正确的命令将是这样的:

screen bash -c 'fgrep "needle" /mnt/Volume_volume/haystack/* >> /mnt/Volume_volume/log.txt'
Run Code Online (Sandbox Code Playgroud)

但我怀疑很简单:

nohup fgrep "needle" /mnt/Volume_volume/haystack/* >> /mnt/Volume_volume/log.txt &
Run Code Online (Sandbox Code Playgroud)

也会为你工作。