ENTR(1) | General Commands Manual | ENTR(1) |
entr
— run
arbitrary commands when files change
entr |
[-cdprs ] utility
[argument /_ ...] |
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
-d
.
’ are ignored.-n
entr
does not attempt to read from the TTY or change its properties.-p
-r
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. Control
of the TTY is not transferred the child process.-s
SHELL
environment variable. When this flag is set,
the name of the shell and exit code is printed after each invocation.The first argument named /_ is replaced with the absolute path of the first file to trigger an event. If the restart option is used the first file under watch is treated as the default.
entr
listens for keyboard input and
responds to the following commands:
-r
’ option is set this will
terminate and restart the child process as if a file change event had
occurred.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.
If SHELL
is undefined,
entr
will use /bin/sh.
The entr
utility exits with one of the
following values:
Rebuild a project if source files change, limiting output to the first 20 lines:
$ find src/ | entr -s 'make | head -n
20'
Launch and auto-reload a node.js server:
$ ls *.js | entr -r node
app.js
Launch and auto-reload a node.js server as a background task:
$ (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
April 17 2018 $ | Debian |