WATCH(1)

NAME
watch - execute a program periodically, showing output fullscreen

SYNOPSIS
watch [-dhsmvt] [-n <seconds>] [--differences[=cumulative]] [--help] [--interval=<seconds>] [--save-history=<filename> [--multifile]] [--no-title] [--version] <command>

DESCRIPTION
watch runs command repeatedly, displaying its output (the first screenfull). 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. The -t or --no-title option turns off the header showing the interval, command, and current time at the top of the display, as well as the following blank line. If you use --save-history with the --differences option, watch will save off a timestamped screen dump when a change occurs. --save-history will print a header with the command line into the file, which is useful when --no-title is specified, or if you have files laying around and want to know what command generated them. The default behavior for --save-history is to dump all screens into one large file. If you are needing to use diff to figure out what changed between two screen dumps, you should use the --multifile argument. --multifile will force watch to dump to a timestamped file into the current directory (or whatever path is specified with the argument to --save-history ) for each screen dump that occurs. --multifile uses the file name from the argument to --save-history and postfixes this argument with the timestamp.

watch will run until interrupted.

NOTE
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

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'

If you're wanting to track changes to the directory, with changes dumped into a file named trackme, you might use

    watch -d -s /tmp/trackme 'ls -l'

To save off into individual files, the following command line will use a file with the pattern of "trackme_yyyy_mm_dd-HH:MM:SS" for each screen dump that occurs. Since a directory path is not given with the "trackme" argument, it will dump these files into the current working directory.

    watch -d -s trackme -m 'ls -l some_file_youre_watching'

If you want the files going somewhere other than the current working directory, make sure you put a path on the filename argument for --save-history

    watch -d -s /root/logs/trackme -m 'ls -l'

To see the effects of quoting, try these out

    watch echo $$

    watch echo '$$'

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

You can watch for your administrator to install the latest kernel with

    watch uname -r

(Just kidding.)

BUGS
Upon terminal resize, the screen will not be correctly repainted until the next scheduled update. All --differences highlighting is lost on that update as well. If using the --save-history option, the new screen size is dumped to the file.

Non-printing characters are stripped from program output. Use "cat -v" as part of the command pipeline if you want to see them.

AUTHORS
The original watch was written by Tony Rems <rembo@unisoft.com> in 1991, with mods and corrections by Francois Pinard. It was reworked and new features added by Mike Coleman <mkc@acm.org> in 1999. Changes by Albert Cahalan, 2002-2003. Save history feature added in 2007 by Todd LaWall.