Pregunta:
Quiero que un script se suspenda a menos que se modifique / elimine un archivo determinado (o un archivo creado en un directorio determinado, o …). ¿Se puede lograr esto de una manera elegante? Lo más simple que me viene a la mente es un bucle que duerme un rato antes de volver a comprobar el estado, pero ¿tal vez hay una forma más elegante?
Respuesta:
En Linux, puede usar la función de inotify
del kernel. Las herramientas para la creación de scripts se pueden encontrar allí: inotify-tools .
Ejemplo de uso de wiki:
#!/bin/sh
EVENT=$(inotifywait --format '%e' ~/file1) # blocking without looping
[ $? != 0 ] && exit
[ "$EVENT" = "MODIFY" ] && echo 'file modified!'
[ "$EVENT" = "DELETE_SELF" ] && echo 'file deleted!'
# etc...