Understanding the Linux Command Watch

Businessman at workstation in startup office
Thomas Barwick / Getty Images

The Linux command watch runs command repeatedly, displaying its output (the first screenful). This allows you to watch the program output change over time. By default, the program is run every 2 seconds; use -n or --interval to specify a different interval.

The -d or --differences flag will highlight the differences between successive updates. The --cumulative option makes highlighting "sticky", presenting a running display of all positions that have ever changed.

Watch will run until interrupted.  

Synopsis of The Linux Watch Command

watch [-dhv] [-n <seconds>] [--differences[=cumulative]] [--help] [--interval=<seconds>] [--version] <command>  

Note that command is given to sh -c which means that you may need to use extra quoting to get the desired effect.

Note that POSIX option processing is used (i.e., option processing stops at the first non-option argument). This means that flags after command don't get interpreted by watch itself.  

Examples of The Linux Watch Command

To watch for mail, you might do:

watch -n 60 from

To watch the contents of a directory change, you could use:

watch -d ls -l

If you're only interested in files owned by user joe, you might use:

watch -d 'ls -l | fgrep joe'

To see the effects of quoting, try these out:

watch echo $$
watch echo '$$'
watch echo "'"'$$'"'"

Important: Use the man command (% man) to see how a command is used on your particular computer.