Sometimes you need to regularly run a program in the terminal when you change files in some directory. This is a kind of “local CI” that frontend engineers are familiar with: change JavaScript file, and the page will update itself in browser (“hot reload”).

The program fswatch written by Enrico Maria Crisostomo prints the paths of changed files in a given directory, which you can “pipe” to another program.


In the example below, fswatch runs genblog if any file in the current directory has been changed (except for files in directories .git and output):

fswatch --one-per-batch --recursive --exclude="output" --exclude=".git" . | xargs -n1 sh -c "genblog"