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 &
будет работать для вас тоже.