Quiero leer todo el archivo y hacer que espere la entrada, al igual que tail -f con el archivo completo mostrado.
La longitud de este archivo siempre cambiará, porque este es un .logarchivo.
¿Cómo puedo hacerlo si no conozco la longitud del archivo?
command-line
tail
gusano
fuente
fuente

lesstiene la tecla "F". Útil si necesitas interacción.Respuestas:
taille permite agregar-npara especificar el número de líneas que se mostrarán desde el final, que se pueden usar junto con-f. Si el argumento para-ncomenzar con+eso es el recuento de líneas desde el principio (0y1mostrar todo el archivo,2indicando omitir la primera línea, como lo indica @Ben). Entonces solo hazlo:Si los archivos de registro girará, se puede añadir
--retry(o combinar-f and --retryen-Fcomo se sugiere @Hagen)También tenga en cuenta que en una terminal gráfica, puede usar el mouse y PageUp/ PageDownpara volver al historial (suponiendo que su búfer sea lo suficientemente grande), esta información permanece allí incluso si usa Ctrl+ Cpara salir
tail. Si usalessesto, es mucho menos conveniente y AFAIK tiene que usar el teclado para desplazarse y no conozco un medio para evitar lalessdesinicialización de termcap si olvida comenzar-X.fuente
+) se implemente de manera más eficiente.+1por enseñarme acerca+0. Es posible que desee en-Flugar de-frotar archivos de registrotail -n +1me muestra el comienzo del archivo ytail -n +2omite una línea. Creo que el número es el número de línea de la primera línea mostrada.Hay una manera mejor de lograr esto:
Le mostrará todo el archivo, tiene todo el poder
lessy esperará una nueva entrada. Si desea dejar de esperar la entrada y leer una parte específica, puede detenerla^Cy continuar conF.El
Fcomando siempre está disponible enless, si decide observar los cambios mientras tiene un archivo abiertoless, al presionar seFactivará. Gracias a hiergiltdiestfu y wildcard por señalar eso.fuente
tail. Gracias por el consejo; Nunca hubiera pensado usarlolesspara esto. Nota para otros: también puede simplemente ejecutarless <file>y luego escribirF.Además de la respuesta de / u / Anthon, puede hacer algo como:
Esa
-0opción de cola es equivalente a-n 0, es decir: muestra 0 líneas. Pero el-fmostrará nuevas líneas.No necesitas los frenos
{ }. Los usé porque a veces quieres redirigir los descriptores de archivos de alguna manera. Por ejemplo:Notado por Ben Milwood: podría tener una condición de carrera donde el archivo crece entre el final de la
catoperación y el comienzo detailoperación. Pero, de nuevo, este es un problema "académico" para una solución académica.fuente
cattermina ytailcomienza, no verá esas líneas. Es poco probable que sea un gran problema, pero es una razón para preferir latailsolución pura .{ cat; tail -n +0 -f; } < fileque solucionaría la carrera, porque tail imprimirá cualquier dato nuevo que aparezca entrecatla salida ytailel inicio. Por supuesto, hace que seacatredundante. La redirección solo ocurre una vez, ytailel stdin es el descriptor de archivo quecatya se lee en EOF, por lo que su posición actual es donde secatdetuvo. Puede probarlo poniendoecho foo >> filedentro de la{}, para crear la carrera cada vez.watchel comando debería hacer eso por ti.También puedes probar
Tendrás más opciones con el
lesscomando para desplazarte por tu archivo mientras dices que es un archivo grande.fuente
+Fopción