ENTR(1) BSD General Commands Manual ENTR(1)NAMEentr — run arbitrary commands when files change
SYNOPSISentr [-cdpr] utility [argument ...] [/_]
DESCRIPTION
A list of files provided on the standard input and the utility is exe‐
cuted using the supplied arguments if any of them change. entr waits for
the child process to finish before responding to subsequent file system
events. A TTY is also opened before entering the watch loop in order to
support interactive utilities.
The arguments are as follows:
-c Execute /usr/bin/clear before invoking the utility specified on
the command line.
-d Track the directories of regular files provided as input and exit
if a new file is added. This option also enables directories to
be specified explicitly. Files with names beginning with ‘.’ are
ignored.
-p Postpone the first execution of the utility until a file is modi‐
fied.
-r Reload a persistent child process. SIGTERM is used to terminate
the utility before it is restarted. A process group is created to
prevent shell scripts from masking signals. entr waits for the
utility to exit to ensure that resources such as sockets have
been closed.
The first occurrence of /_ on the command line will be replaced with the
absolute path of the first file that was modified. If the restart option
is used the first file under watch is treated as the default.
ENVIRONMENT
If PAGER is undefined, entr will assign /bin/cat to prevent interactive
utilities from waiting for keyboard input if output does not fit on the
screen.
EXIT STATUS
The entr utility exits with one of the following values:
0 SIGINT or SIGTERM was received
1 No regular files were provided as input or an error
occurred
2 A file was added to a directory while using the while using
the directory watch option
EXAMPLES
Rebuild a project if source files change, limiting output to the first 20
lines:
$ find src/ | entr sh -c 'make | head -n 20'
Launch and auto-reload a node.js server:
$ ls *.js | entr-r node app.js
Clear the screen and run a query after the SQL script is updated:
$ echo my.sql | entr-p psql -f /_
Rebuild project if a source file is modified or added to the src/ direc‐
tory:
$ while sleep 1; do ls src/*.rb | entr-d rake; done
BSD March 13, 2015 BSD