屏幕中的Grep不保存输出到logfile

时间:2017-06-07 14:00:59

标签: linux bash grep gnu-screen

我正试图通过我的文件执行非常长的grep扫描。因为Screen将在执行后关闭,我试图写入日志文件以保存grep的输出。出现以下命令:

 screen fgrep "needle" /mnt/Volume_volume/haystack/* >> /mnt/Volume_volume/log.txt

不幸的是,日志文件是空的。什么地方出了错?屏幕输出是否保存而不是grep?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

您编写的命令表示:运行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'

但我怀疑很简单:

nohup fgrep "needle" /mnt/Volume_volume/haystack/* >> /mnt/Volume_volume/log.txt &

也适合你。