¿ watchSolo monitorea la salida visible de un comando? Digamos que estoy en un directorio con los siguientes contenidos:
$ ls
a b c d e f g h i j k l m n
Si ejecuto watch -g ls -1, espero que salga si se agrega o elimina un archivo. Lo que realmente ocurre es que salga solamente si el archivo en cuestión es visible en la salida del terminal de watch:
$ watch -g ls -1
Every 2.0s: ls -1 Wed Nov 13 16:35:03 2013
a
b
c
d
e
f
Eliminar el archivo m, que no es visible debido al tamaño de mi terminal, no hace nada. Suprimir un archivo visible, por ejemplo d, hace watchque salga como se esperaba.
La -gbandera se explica así en mi manpágina:
-g, --chgexit
Exit when the output of command changes.
¿Que esta pasando? ¿Esto es normal? ¿Cómo puedo usar watchpara comandos con salida larga? Estoy usando el watch from procps-ng 3.3.4que se instaló desde los repositorios de Debian.

-gopción dewatchhacer? No lo encuentro en mi versión dewatchRespuestas:
Encontré este hilo titulado: Bug # 225549: have watch monitor stderr . Ese hilo es de 2008, pero parece que las versiones anteriores no admiten la visualización de otra cosa que no sea STDOUT.
Por lo tanto, estamos limitados a STDOUT. En cuanto a lo visible, hay mucho lenguaje en el
info watchyman watcheso me hace pensar que su observación / suposición es correcta.extracto
También este bit bajo BUGS:
Si tuviera que adivinar, pensaría que estaban almacenando los bits visibles en un búfer entre ejecuciones y luego analizando solo esos caracteres.
EDITAR # 1
Lo depuré más usando
stracey puede ver lawatchlectura del resultado dellscomando, por lo que internamente se descarta el cambio.antes de eliminar el
marchivodespués de
meliminar el archivofuente
watch -g foo; echo "Something changed!". Parece un error extrañamente paralizante en un programa tan establecido.-ginterruptor, pero lo probé en Ubuntu y se comporta igual.Estoy bastante seguro de que buscas herramientas de inotify .
Mi página de manual para ver , de procps-ng , dice
fuente
watchcomportarse como OP y salir con el cambio.watchcomporta de esta manera. Él sabe sobre inotify.