table of contents
ENTR(1) | General Commands Manual | ENTR(1) |
NAME¶
entr
—
run arbitrary commands when files change
SYNOPSIS¶
entr |
[-cdpr ] utility
[argument ...] [/_] |
DESCRIPTION¶
A list of files provided on the standard input and the utility is executed 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 modified.
-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¶
IfPAGER
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¶
Theentr
utility exits with one of the following values:
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/ directory:
$ while true; do ls src/*.rb | entr
-d make; done
May 17, 2016 | Linux 4.9.0-9-amd64 |