
Я не могу найти способ перенаправить ошибку на моем NAS.
Оболочка есть, /bin/sh
и когда я использую ее, > mylogfile.log 2>&1
я все еще вижу ошибку, печатающуюся на терминале. Конкретная команда —
find /volume1/ | grep "totoro" > ~/totoro.log 2>&1
и я вижу ошибку от find
. Есть ли способ заставить работать перенаправление? Как записать find
ошибки в файл журнала?
решение1
find /volume1/ | grep "totoro" > ~/totoro.log 2>&1
Только ваш 2>&1
влияет grep
, а не find
. В приведенной ниже команде первый 2>&1
влияет find
:
find /volume1/ 2>&1 | grep "totoro" > ~/totoro.log 2>&1 # probably wrong
Но это отправит stderr вместе со stdout из find
в grep
. Вероятно, вы не хотите grep
фильтровать stderr из find
. Я полагаю, вы хотите захватить stdout и stderr всей составленной команды. Если так, запустите команду в явной подоболочке и перенаправьте ее выходные потоки и потоки ошибок:
(find /volume1/ 2>&1 | grep "totoro") > ~/totoro.log 2>&1
решение2
Пожалуйста, посмотрите команду "tee". Она читает из стандартного ввода и записывает в стандартный вывод и файлы. Это может быть полезно здесь.