
Não consigo encontrar uma maneira de redirecionar o erro no meu NAS.
O shell está /bin/sh
e quando uso > mylogfile.log 2>&1
ainda vejo o erro imprimindo no terminal. O comando específico é
find /volume1/ | grep "totoro" > ~/totoro.log 2>&1
e vejo erro de find
. Alguma maneira de fazer o redirecionamento funcionar? Como escrever find
erros no arquivo de log?
Responder1
find /volume1/ | grep "totoro" > ~/totoro.log 2>&1
Seus 2>&1
efeitos grep
apenas, não find
. No comando abaixo, o primeiro 2>&1
afeta find
:
find /volume1/ 2>&1 | grep "totoro" > ~/totoro.log 2>&1 # probably wrong
Mas isso enviará stderr junto com stdout de find
para grep
. Você provavelmente não deseja grep
filtrar stderr de find
. Acho que você deseja capturar stdout e stderr de todo o comando composto. Nesse caso, execute o comando em um subshell explícito e redirecione seus fluxos de saída e de erro:
(find /volume1/ 2>&1 | grep "totoro") > ~/totoro.log 2>&1
Responder2
Por favor, veja o comando "tee". Ele lê a entrada padrão e grava na saída e nos arquivos padrão. Isso pode ser útil aqui.