Estoy buscando una herramienta CLI que vea un directorio y escupe los nombres de los archivos que cambian en tiempo real.
some_watch_command /path/to/some/folder | xargs some_callback
Soy consciente de inotify
( inotify-tools
?) Y parece ser lo que necesito, pero necesito algo que sea compatible tanto con Linux (en mi caso Ubuntu) como con OSX.
No necesita ser rápido como un rayo, pero sí debe activarse ante los cambios (en un segundo es razonable). Además, no necesariamente necesito el programa CLI exacto mencionado anteriormente. Si existe alguna tecnología subyacente y es fácilmente programable en ambas plataformas, eso también sería genial.
fswatch
para OS X, que encontré en una pregunta etiquetada como duplicado - superuser.com/questions/445907/…Respuestas:
OS X normalmente usaría Acciones de carpeta o Lanzado para esta tarea.
La única herramienta multiplataforma que conozco es la API de vigilancia para Python (por lo tanto, disponible para OS X y Linux). Instalarlo a través de
pip
(oeasy_install
)Viene con la
watchmedo
herramienta de línea de comandos, que le permite ejecutar comandos de shell en eventos del sistema. Verifique su sintaxis general conwatchmedo --help
Aquí hay un breve ejemplo, donde podría modificar fácilmente el comando y la ruta resaltada en negrita:
Esto simplemente escupiría las rutas a todos los archivos o carpetas modificados, permitiéndole canalizar
watchmedo
la salida a otro comando de shell.fuente
watchmedo
funciona perfectamente para mí. ¡Gracias!He modificado algunos scripts de Ruby que he encontrado para hacer exactamente lo que estás buscando. Aquí está el código Ruby:
Llamé a este script "OnSaveFolder.rb". Se necesitan dos parámetros: la carpeta que desea ver para los cambios, y el código bash que desea ejecutar cuando haya un cambio. Por ejemplo,
¡Espero que esto ayude! Descubrí que Ruby funciona muy bien para este tipo de cosas, y está instalado en OS X por defecto.
fuente
Puede poner
lsof
unwatch
comando y actualizarlo cada<s>
segundo:y ejecutar eso con cualquier filtro, como mirar pid1, pid2, pid3 e ignorar pid4
Si eso no es suficiente, siempre puedes escribir tus propios filtros con grep.
Para OS X, vea las respuestas de esta pregunta .
fuente
Entr es agradable. Puede filtrar los archivos exactos que desea que vea, de esta manera.
Si desea que solo supervise ciertos archivos dentro de un directorio, puede diseñar su
find
comando para que solo devuelva los archivos que desea ver.Me resulta más fácil de configurar que
fswatch
.fuente