inotify-tools (inotifywait)¶
The inotify-tools package comes with several tools that can be used to watch files
for changes.
inotifywait¶
The inotifywait tools comes with the inotify-tools package.
It waits for changes to files (using inotify or fanotify, the latter from C) and
can be used inside shell scripts to execute arbitrary code whenever the watched files
are modified.
inotifywait Output¶
Whenever the watched file changes, it outputs an "event."
By default the event uses the format:
watched_filename: The name of the file that the change occurred in.EVENT_NAMES: Comma-separatedinotifyevents that occurred.event_filename: Only outputs when the event occurred on a directory.- This will hold the name of the file inside that directory which caused the "event."
inotifywait Usage¶
while read -r event; do
printf "Event: %s\n" "$event"
done < <(inotifywait -m -r -e create,modify,delete "$WATCH_FILE")
-m: Monitor mode. Execute indefinitely. The default is to exit after the first event.- You'll probably want to use this inside scripts.
-
-r: Recursive. Watch all subdirectories of any dirs being watched. -
-d: Daemon. Same as--monitorbut runs in the background.- Logs events to a file (
--outfilerequired). - Also implies
--syslog.
- Logs events to a file (
-
-s: Syslog. Outputs errors to system log module rather thanstderr.man 3 syslog
-
-e: Event. Listen for specific events only.- Common events:
accessmodifycreatedelete
man://inotifywait /^\s*EVENTS
- Common events: