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>.