¿Cómo abro un archivo de texto en una terminal con actualización automática instantánea cada vez que se cambia?
He examinado vim
con :set autoread
, pero requiere una entrada elemental (como presionar una tecla en el interior vim
) para activar la actualización.
Quiero que la actualización automática sea manos libres. ¿Hay algún truco para hacer esto?
Estoy usando Crunchbang 11, pero estoy bastante cómodo con el terminal.
tail -f $file
.inotify
. Al buscarlo, es una API a la que necesito acceder con la programación en C, que no estoy dispuesto a hacer pronto. Estoy buscando una solución de comando de shell.inotify-tools
. Estos usan una característica integrada en el Kernel llamada inotify. Cada vez que se actúa un archivo sobre un evento se envía a través de inotify en el que puede actuar. Muchos prog. langs. como Python, Perl, etc. tienen bibliotecas que envuelven la API de Inotify. Consulte la página de Wikipedia: en.wikipedia.org/wiki/InotifyRespuestas:
Esto debería mostrarle el archivo una vez por segundo:
fuente
watch -tpcn 1 pygmentize -g filename
watch -g
, no funciona como cabría esperar .-g
cambio es en realidad parapygmentize
. De todos modos, gracias por la advertencia.watch -n 1 tail file
?Muestra las actualizaciones de syslog a medida que se agregan al archivo.
fuente
Lo usaría
watch
como sugiere la otra respuesta, pero solo para mostrarle cómo uno puede abordar un problema aparentemente complicado usando los bloques de construcción proporcionados por un shell como Unix; Un bucle while puede ser una forma sencilla de realizar su bucle.Ejemplo
La pantalla se borra y luego, después de un segundo, se muestra esto:
fuente
Como se sugiere en los comentarios, también podría usarlo
inotify
aunque sea excesivo. Por mucho, lo más simple es usarlowatch
. Aquí hay una forma de hacerloinotify
:Instala el
inotify-tools
paqueteUtilícelo
inotifywatch
para verificar su archivo en busca de cambios. Ejecútelo en un bucle ycat
el archivo si se detecta un cambio (es por eso que yogrep
para la cadenatotal
):fuente
-q
(o--quiet
) agrep
silenciará la línea coincidente con "total".watch(1)
Es una herramienta realmente útil. [1]Sin embargo, no recomendaría usar
cat
.En su lugar, use
head
otail
para saber si necesita ver el principio o el final del archivo.fuente