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.
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:
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).Shift+F hará que less
sea similar a tailf
. Es decir, se actualiza si se agregan más datos al archivo.
Simplemente escriba:
less +F filename
Esto emula presionar "F" dentro del editor.
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í).
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í.
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.
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Í recargased -i
, gEdit, TextEdit: NO se recarguevi
cambios: SÍ vuelve a cargarvi
cambios: NO se recargueCreo 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á.
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.
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.
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'.
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 /