Me gusta el watch
comando, pero tiene sus limitaciones .
Tengo curiosidad por saber si podría imitar la funcionalidad de watch
con less
. Estoy buscando principalmente la capacidad de desplazarme por mi directorio, ya que se modifica dinámicamente a través de un script en ejecución.
tail -f foo.log | grep bar
y poder cambiar dinámicamente el comando grep al reiniciar la tubería de cola / grep.Respuestas:
En
less
, puede escribirF
para seguir leyendo al final de un archivo (comotail -f
); puede escribir:e
y un nombre de archivo para ver un archivo diferente, pero desafortunadamente, si ingresa el nombre del archivo actual,less
no vuelve a cargar el archivo. Sin embargo, hay un truco para que vuelva a leer el archivo actual, sugerido por sabgenton : escriba:e
e ingrese el nombre de un archivo inexistente ; eso hace que menos muestre un mensaje de error y luego vuelva a cargar el archivo actual.Si está buscando una alternativa a
watch ls
, aquí hay algunos:auto-revert-mode
, volverá a cargar el archivo o directorio cada 5 segundos (el retraso es configurable).R
para volver a cargar la URL (local).fuente
less +F
solo observa el contenido adjunto. Use:e nonexistentfile
para volver a leer la entrada completamente cambiada.R
no actualiza de manera confiable el archivo. Actualiza la pantalla y borra algunos búferes de entrada, pero en realidad no recarga los datos del archivo en todas las circunstancias (¿solo si el archivo es grande? No profundicé en el código).Shift+Fhará
less
similar atailf
. Es decir, se actualiza si se agregan más datos al archivo.fuente
less
no se mostrarán esos cambios.$COMMAND | less
. Me pregunto si hay una buena manera de evitar esto. Puedes hacer cosas como,$COMMAND > /tmp/file & less /tmp/file
pero eso no es muy agradable.Simplemente escriba:
Esto emula presionar "F" dentro del editor.
fuente
alias check="less +F"
a mi.bashrc
.man
Las páginas pueden ser muy informativas. No te dejes intimidar por ellos. Entre todo lo demás,man less
dice que puede usar elR
comando para:(Me doy cuenta de que esta pregunta tiene más de 6 años, pero aparece en las búsquedas de Google, así que no soy el único que hizo clic en el enlace para llegar aquí).
fuente
less
no volvió a abrir el archivo usando su nombre de archivo, es decir, cuando el inodo del archivo cambió (como al sobrescribir el archivo usandomv
), el contenido del archivo anterior permaneció (probablemente el inodo anterior se volvió a leer) - - 2. La primera línea que se muestra probablemente comienza en el mismo desplazamiento de bytes que en el contenido del archivo original. Entonces, cuando cambian las longitudes de línea, la primera línea mostrada podría estar incompleta y las líneas mostradas podrían moverse hacia arriba / abajo.R
no siempre funciona Ver unix.stackexchange.com/questions/4351/…La tecla "F" cuando se ejecuta
less
hará un "seguimiento" similar atail -f
, pero no estoy seguro de si eso logrará lo que está buscando aquí.fuente
Normalmente solo escribo Gpara ajustar la salida una vez. Me resulta especialmente útil en un sistema de archivos de red como CIFS.
fuente
man less
: 'G o> o ESC-> Ir a la línea N en el archivo, predeterminado al final del archivo'. Borro mis viejos comentarios incorrectos aquí, perdón por ellos.less
, Mark Nudelman, respondió lo siguiente: "El comando G normalmente no fuerza una relectura del archivo como lo hace el comando R. Puede parecer que si el final del archivo aún no se ha leído cuando G se invoca, de modo que saltar al final del archivo debe leer los datos allí por primera vez. Por ejemplo, si salta al final con G, luego vuelve al principio con 1G, luego otro programa modifica los datos en al final del archivo (sin cambiar la longitud), "(cont.)Puede usar vim para leer el archivo, luego agregar la siguiente asignación a su
.vimrc
archivo y puede volver a cargar fácilmente un archivo con ,r:Tenga en cuenta que si ya editó el archivo, vim se quejará. Solo cambia a
Ignorar los cambios.
fuente
vim
de tus manos frías y muertas. El contexto de la pregunta es sobreless
, pero como alguien con tendencias monomaníacas , ¡simpatizo!R
para repintar no siempre vuelve a cargar el archivo. [1]Una solución alternativa que siempre vuelve a cargar el archivo es presionar
hq
, que abrirá la página de Ayuda y luego se cerrará. Tiene un efecto secundario de forzar la recarga del archivo.[1] Aquí hay algunos ejemplos de situaciones que
R
se recargan y no se recargan:>
y>>
cambios: SÍ recargased -i
, gEdit, TextEdit: NO se recarguevi
cambios: SÍ recargavi
cambios: NO se recargueCreo que la diferencia se reduce a si el inodo cambia (puede consultar con
ls -i foo.txt
). Si el inodo cambia, entoncesR
no funcionará.fuente
En su
tail -f
lugar, podría canalizarlo , resultaría en que siga la salida. Sin embargo, estaría perdiendo la capacidad de moverse (desplazarse) a través de su salida.fuente
Si no es reacio a usar un navegador, puede iniciar el servidor web Algernon con este comando:
Luego se mostrará una lista de archivos, y se actualizará automáticamente, en http: // localhost: 3000 /
fuente
less
Acabo de encontrar este hilo como cualquier otra persona. Me gustaría agregar la solución de cuando ya está al final del archivo, usando 'g' seguido de 'G' forzará una actualización del archivo.
Terminé haciendo un botón de macro para esto en mi programa de terminal (SecureCRT). La macro es simplemente 'gG'.
fuente