In an earlier installment of Linux Fu, I mentioned how you can use inotifywait
to efficiently watch for file system changes. The comments had a lot of alternative ways to do the same job, which is great. But there was one very easy-to-use tool that didn’t show up, so I wanted to talk about it. That tool is entr
. It isn’t as versatile, but it is easy to use and covers a lot of common use cases where you want some action to occur when a file changes.
The program is dead simple. It reads a list of file names on its standard input. It will then run a command and repeat it any time the input files change. There are a handful of options we’ll talk about in a bit, but it is really that simple. For example, try this after you install entr
with your package manager.
- Open two shell windows
- In one window, open your favorite editor to create an empty file named /tmp/foo and save it
- In the second window issue the command:
echo "/tmp/foo" | entr wc /tmp/foo
- Back in the first window (or your GUI editor) make some changes to the file and save it while observing the second window
If you can’t find entr
, you can download it from the website.
Frequently, you’ll feed the output from find
or a similar command to entr
.
Read more at Hackaday