Ese mensaje se emite en stderr como todos los mensajes de advertencia y error.
Puede descartar toda la salida de error:
tail -f file 2> /dev/null
O para filtrar solo los mensajes de error que contienen truncate :
{ tail -f file 2>&1 >&3 3>&- | grep -v truncated >&2 3>&-;} 3>&1
Sin embargo, eso significa que pierde el estado de salida de tail. Algunos shells tienen una pipefailopción (habilitada con set -o pipefail) para que la tubería informe el estado de salida de tailsi falla.zshy bashtambién puede informar el estado de componentes individuales de la tubería en su $pipestatus/ $PIPESTATUSmatriz.
Con zsh o bash, puedes usar:
tail -f file 2> >(grep -v truncated >&2)
Pero tenga en cuenta que el grepcomando no se espera, por lo que los mensajes de error, si los hay, pueden aparecer después de las tailsalidas y el shell ya ha comenzado a ejecutar el siguiente comando en el script.
En zsh, puede abordar eso escribiéndolo:
{ tail -f file; } 2> >(grep -v truncated >&2)
Eso se discute en la zshdocumentación eninfo zsh 'Process Substitution' :
Hay un problema adicional con >(PROCESS); cuando se adjunta a un comando externo, el shell principal no espera a que finalice el PROCESO y, por lo tanto, un comando inmediatamente posterior no puede confiar en que los resultados se completen. El problema y la solución son los mismos que se describen en la sección MULTIOS en la nota Redirección :: . Por lo tanto, en una versión simplificada del ejemplo anterior:
paste <(cut -f1 FILE1) <(cut -f3 FILE2) > >(PROCESS)
(tenga en cuenta que no hay MULTIOS involucrados), PROCESS se ejecutará de forma asíncrona en lo que respecta al shell padre. La solución es:
{ paste <(cut -f1 FILE1) <(cut -f3 FILE2) } > >(PROCESS)
Los procesos adicionales aquí se generan desde el shell principal que esperará su finalización.
()en lugar de un comando complejo{}?Si
grepno se deshace de la salida, lo más probable es que se imprima en un error estándar. La forma más sencilla de deshacerse de eso es simplemente volcarlo:fuente
Quizás ayude si se puede arreglar el origen de este error. Sucedió porque algo escribir en el archivo con sobrescribir ">" no con agregar ">>".
fuente