man dnotify (Commandes) - Execute a command when the contents of a directory change
NAME
dnotify - Execute a command when the contents of a directory change
SYNOPSIS
dnotify [OPTION]... DIRECTORY... [-e COMMAND...]
DESCRIPTION
This manual page document describes the dnotify command.
The dnotify program executes COMMAND every time the contents of any of the specified directories change. If a command is not specified, `echo {}' is assumed.
What is considered a change is determined by the `--access', `--modify', `--create', `--delete', `--rename' and `--attrib' options (see below). These options may be combined. If none of them are specified, create and delete are assumed.
The string `{}' in the command specification is replaced by the name of the directory that was updated.
OPTIONS
This program follow the usual GNU command line syntax, with long options starting with two dashes (`-').
- -A, --access
- Trigger the command when a file in one of the directories was accessed (read).
- -M, --modify
- Trigger the command when a file in one of the directories was modified (i.e. written or truncated).
- -C, --create
- Trigger the command when a file was created in a directory.
- -D, --delete
- Trigger the command when a file was removed from a directory.
- -R, --rename
- Trigger the command when a file in one of the directories was renamed.
- -B, --attrib
- Trigger the command when a file in one of the directories had its attributes changed (as a result of chmod or chown).
- -a, --all
- Trigger the command when any of the events above occurs. That is, this is a shorthand for '-AMCDRO'.
- -e, --execute=COMMAND...
- This option specifies the command to execute. All arguments (including possible options) following this option are treated as arguments to the command.
The string `{}' in the command specification is replaced by the name of the directory that was updated (just like find(1)).
- -f, --file=FILE
- The option specifies a file containing directory names to monitor, as if they had been specified on the command line. There must be one directory name per line in the file.
This option can be used multiple times.
- -p, --processes=COUNT
- This option specifies the maximum number of commands to be run at the same time. It is possible to allow an unlimited number of commands to be run at the same time by specifying COUNT as 0 or -1.
The default value is 1.
- -q, --queue=DEPTH
- This option specifies the maximum number of commands to queue up while there are other commands already executing. This is usually used in conjunction with the --processes option. An unlimited depth of the queue can be achieved by specifying DEPTH as -1.
The default value is -1.
- -t, --times=COUNT
- Exit dnotify once the command has been run (and finished running) COUNT times.
- -o, --once
- Exit dnotify when the specified command has been run once. This is equivalent to `--times 1'.
- -r, --recursive
- Traverse the specified directories and monitor all subdirectories (at any depth) as well.
dnotify will only scan directories once to find out subdirectories to monitor when recursive mode is enabled. If you want to monitor any subdirectory created, you will have to stop and restart dnotify every time a create or delete event occurs.
- -b, --background
- Run dnotify in the background - detach from terminal. Prior to executing any commands, dnotify will change the current directory to the root directory (`/'). Relative path names of directories to monitor will be made absolute automaticly, but make sure the command you specify does not rely on the current directory being unchanged.
- -s, --silent, --quiet
- Do not print warnings when the executed commands exits with a non-zero return value.
- --help
- Show summary of options.
- --version
- Output version information and exit.
EXAMPLES
Print 'change' to the terminal every time a file (or part of file)
in /etc is read.
dnotify -A /etc -e echo change
Execute the script 'informdelete' every time a file in /var/mail is
created or deleted.
dnotify -CD /var/mail -e informdelete
AUTHOR
dnotify was written by Oskar Liljeblad <oskar@osk.mine.nu>.