
No encuentro una manera de redirigir el error en mi NAS.
El shell es /bin/sh
y cuando lo uso > mylogfile.log 2>&1
todavía veo el error al imprimir en el terminal. El comando específico es
find /volume1/ | grep "totoro" > ~/totoro.log 2>&1
y veo error de find
. ¿Alguna forma de hacer que la redirección funcione? ¿Cómo escribir find
errores en el archivo de registro?
Respuesta1
find /volume1/ | grep "totoro" > ~/totoro.log 2>&1
Sólo tus 2>&1
afectos grep
, no find
. En el siguiente comando, el primero 2>&1
afecta find
:
find /volume1/ 2>&1 | grep "totoro" > ~/totoro.log 2>&1 # probably wrong
Pero esto enviará stderr junto con stdout de find
a grep
. Probablemente no quieras grep
filtrar stderr de find
. Supongo que desea capturar stdout y stderr de todo el comando compuesto. Si es así, ejecute el comando en un subshell explícito y redirija sus flujos de salida y error:
(find /volume1/ 2>&1 | grep "totoro") > ~/totoro.log 2>&1
Respuesta2
Consulte el comando "tee". Lee desde la entrada estándar y escribe en archivos y salidas estándar. Esto puede resultar útil aquí.