Grep на экране не сохраняет вывод в лог-файл

Я пытаюсь выполнить очень долгое сканирование grep через мои файлы. Поскольку экран закроется после выполнения, я пытаюсь записать в файл журнала, чтобы сохранить вывод grep. Появилась следующая команда:

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

К сожалению, файл журнала пуст. Что пошло не так? Сохраняется ли вывод экрана вместо grep? Как это исправить?

1 ответ

Решение

Написанная вами команда означает: запустить 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 &

будет работать для вас тоже.

Другие вопросы по тегам