tubos y cola -f en linux

2

¿Es posible ejecutar cat logfile | tail -f? Por alguna razón, solo lee el registro inicial, pero luego no actualiza las entradas entrantes. Sé que puedo hacerlo directamente tail -f logfile.

Solo quería saber por qué esto no funciona, y si tail -ftiene que ser siempre primero y luego otra tubería.

JosephD
fuente
1
Es una buena idea dejar el hábito de usar catinútilmente.
Dennis Williamson

Respuestas:

5

Solo hazlo tail -f logfile. Cuando hace el gato primero, está almacenando el archivo tal como está en este momento, y si desea obtener nuevas entradas, deberá volver a colocarlo. Si solo lo hace tail -f logfile, actualizará continuamente la pantalla a medida que se actualiza el archivo (aunque es posible que desee hacerlo tail -F logfile, por lo que continuará funcionando si el archivo de registro se reinicia y se crea uno nuevo).

En otras palabras, se catejecuta una vez y la salida pasa a la cola. Ejecutar tail directamente en el archivo hace que tail se ejecute y permanezca ejecutándose, por lo que continuamente obtienes actualizaciones (con -f, eso es).

Jed Daniels
fuente