Fswatch es un software multiplaforma y con licencia libre GPL, que nos avisa cuando un determinado archivo o directorio ha sido modificado.

El programa se ejecuta en la linea de comandos, donde Fswatch se encarga de patrullar aquellos archivos o carpetas que hayamos señalado, detectando en tiempo real cualquier evento relacionado con la creación, edición, apertura, borrado o movimiento de los mismos.

Dependiendo del sistema operativo ejecutado, Fswatch utiliza un tipo de monitor predeterminado. En Linux viene con el «inotify monitor», un subsistema disponible en el kernel desde el año 2005, que nos informa de este tipo de cambios.

En caso de sistemas *BSD utiliza kqueue, en Windows usa ReadDirectoryChangesW, sistemas Solaris con File Events Notification y para Mac viene con File Systems Events API. Además incluye otra variante llamada Poll Monitor, que funciona en la mayoría de sistemas, aunque es menos eficiente.

El asunto de los monitores disponibles, es algo que podemos consultar al final de la ayuda del programa:

fswatch --help

Fswatch soporta búsqueda recursiva, uso de comodines, así como la posibilidad de excluir determinadas rutas o combinarlo con otros comandos tipo xargs (por ej. para sincronizar archivos de forma remota).

El modo de ejecución más sencilla es: fswatch seguido de la ruta al directorio que queremos controlar. Por ej:

fswatch /home/jose/Escritorio/stuff

A mi me gusta añadirle la opción -t, la cual nos marca el momento exacto de los diferentes eventos:

fswatch -t /home/jose/Escritorio/stuff

El programa se ejecuta y nos muestra una salida cada vez que realizamos algún cambio o abrimos un archivo/carpeta. Y se detiene su ejecución del modo habitual (Ctrl + C).

Si preferimos podemos programarlo para lo haga al primer cambio registrado, con el parámetro -1:

fswatch -1 /home/jose/Escritorio/stuff

Podemos seleccionar un monitor diferente que el predeterminado:

fswatch -m poll_monitor /home/jose/Escritorio/stuff

O modificar la latencia (por defecto 1 segundo)

fswatch -l 5 /home/jose/Escritorio/stuff

En la ayuda del programa o en el manual también nos vamos a encontrar otras opciones, como las que contabiliza el número de cambios o las que permiten el filtrado por archivos o carpetas, (en mi caso por algún motivo no efectuaba dicha discriminación, quizás por el tipo de monitor utilizado, dependiendo de eso algunas opciones pueden no estar disponibles).

man fswatch

Instalación en Linux

Los usuarios de Arch Linux o alguna de sus derivadas (Manjaro, Antergos) nos lo encontramos en los repositorios comunitarios de AUR. Lo podemos instalar con yaourt o cualquier otro helper:

yaourt -S fswatch

En openSUSE Tumbleweed y Leap se puede instalar fácilmente a golpe de 1 Click Install.

Tumbleweed y Leap se puede instalar fácilmente a golpe de 1 Click Install. Usuarios de otras distribuciones, pueden descargar la última versión de fswatch en código fuente y proceder a su compilación.

Tenéis más información de este programa en su página de GitHub.

Vía | Oschtenix