我正试图通过我的文件执行非常长的grep扫描。因为Screen将在执行后关闭,我试图写入日志文件以保存grep的输出。出现以下命令:
screen fgrep "needle" /mnt/Volume_volume/haystack/* >> /mnt/Volume_volume/log.txt
不幸的是,日志文件是空的。什么地方出了错?屏幕输出是否保存而不是grep?我该如何解决这个问题?
答案 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 &
也适合你。