it-swarm-es.tech

¿Hay alguna manera de actualizar dinámicamente el comando less?

Me gusta el comando watch, pero tiene sus limitaciones .

Tengo curiosidad por saber si podría imitar la funcionalidad de watch con less. Principalmente busco la capacidad de desplazarme por mi directorio, ya que se modifica dinámicamente a través de un script en ejecución.

146
Zaid

En less, puede escribir F para seguir leyendo al final de un archivo (como tail -f); puedes 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 : type :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 buscas una alternativa a watch ls, aquí hay algunos:

  • Los administradores de archivos modernos (por ejemplo, Nautilus, Thunar, Konqueror, Dolphin, Finder) actualizan las vistas en tiempo real.
  • Emacs no tiene actualización en tiempo real, pero con auto-revert-mode, volverá a cargar el archivo o directorio cada 5 segundos (el retraso es configurable).
  • Aunque w3m es principalmente un navegador web, crea un directorio aceptable y un visor de archivos de texto. Presione R para volver a cargar la URL (local).

Shift+F hará que less sea similar a tailf. Es decir, se actualiza si se agregan más datos al archivo.

68
balki

Simplemente escriba:

less +F filename

Esto emula presionar "F" dentro del editor.

44
jhclark

Las páginas man pueden ser muy informativas. No te dejes intimidar por ellos. Entre todo lo demás, man less dice que puede usar el comando R para:

   R      Repaint the screen, discarding any buffered input.  Useful if the file is changing while it is being viewed.

(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í).

23
destenson

La tecla "F" cuando se ejecuta less hará un "seguimiento" similar a tail -f, pero no estoy seguro si eso logrará lo que estás buscando aquí.

5
Dave Jennings

Normalmente solo escribo G para ajustar la salida de una sola vez. Me resulta especialmente útil en un sistema de archivos de red como CIFS.

5
jorb

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 hace y no recarga:

  • > y >> cambios: SÍ recarga
  • sed -i, gEdit, TextEdit: NO se recargue
  • En Linux, vi cambios: SÍ vuelve a cargar
  • En Mac, vi cambios: NO se recargue

Creo que la diferencia se reduce a si el inodo cambia (puede verificar con ls -i foo.txt). Si el inodo cambia, entonces R no funcionará.

3
wisbucky

Puede usar vim para leer el archivo y luego agregar la siguiente asignación a su .vimrc y puede recargar fácilmente un archivo con ,r:

let mapleader = ","
nnoremap <leader>r :edit <CR>

Tenga en cuenta que si ya editó el archivo, vim se quejará. Solo cambia a

let mapleader = ","
nnoremap <leader>r :edit! <CR>

Ignorar los cambios.

1
puk

Podrías canalizarlo a tail -f en su lugar, resultaría en que sigas la salida. Sin embargo, estaría perdiendo la capacidad de moverse (desplazarse) a través de su salida.

0
Gert

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'.

0
ZMitchell

Si no es reacio a usar un navegador, puede iniciar el servidor web Algernon con este comando:

algernon -a -t /directory/name

Luego se mostrará una lista de archivos y se actualizará automáticamente, en http: // localhost: 3000 /

0
Alexander