Provided by: entr_4.4-1_amd64 bug


     entr — run arbitrary commands when files change


     entr [-acdprs] utility [argument /_ ...]


     A list of files provided on 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:

     -a      Respond to all events which occur while the utility is running.  Without this
             option, entr consolidates events in order to avoid looping.  This option has no
             effect in conjunction with the -r flag.

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

     -n      Run in non-interactive mode.  In this mode entr does not attempt to read from the
             TTY or change its properties.

     -p      Postpone the first execution of the utility until a file is modified.

     -r      Reload a persistent child process.  As with the standard mode of operation, a
             utility which terminates is not executed again until a file system or keyboard event
             is processed.  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 to the child process.

     -s      Evaluate the first argument using the interpreter specified by the SHELL environment
             variable.  If standard output is a TTY, 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.  The first file under watch is used as the default.  If the -s option is used, the
     name of the first file to trigger an event can be read from $0.


     entr listens for keyboard input and responds to the following commands:

     ⟨space⟩  Execute the utility immediately.  If the -r option is set this will terminate and
              restart the child process as if a file change event had occurred.

     q        Quit; equivalent pressing ⟨control-C⟩.


     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:

           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 and the directory watch option was specified


     Rebuild a project if source files change, limiting output to the first 20 lines:

           $ find src/ | entr -s 'make | sed 20q'

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

     Self-terminate after a file is updated

           $ ls * | entr -p 'kill $PPID'