
I have been using watch for some time now but only recently I found out it offers some options that make it even better!
What is watch?
Watch is a program that repeatedly executes a command you tell it to and shows you the output. This can be very useful when you want to observe the output of a program change over time.
Useful options when using watch
Watch offers a couple of neat options.
Highlight differences
watch -d (or watch --differences) points out the changes between the latest command output and the previous one.

Cumulative mode
watch --differences=cumulative makes the highlights stick. In other words, all highlights remain visible and are never cleared.
Fun fact: you can actually give any value to this option instead of cumulative, as long as you provide a value to the --differences option.
Custom interval
watch -n <seconds> (or watch --interval <seconds>) allows you to specify with what interval your command should be executed. By default, your command/program will be run with an interval of 2 seconds.
This interval may be less than 1, but the minimum interval is 0.1s. Intervals less than 0.1 are capped at 0.1.
Precise timekeeping
The last option I want to mention is watch -p (or watch --precise).
This makes watch try its best to run the command at precisely the interval you chose.
Using a combination of the above mentioned options we can see this behavior.
Let’s try printing the precise timestamp every second:
1
watch -n 1 --differences=cumulative 'date --rfc-3339=ns'
Because we enabled cumulative mode we see what digits of the current timestamp change.

Now repeat the command with -p:
1
watch -p -n 1 --differences=cumulative 'date --rfc-3339=ns'

The tenths and hundreds units did not change, so the 1-second interval was better adhered to.
Does this really matter? That’s up to you to decide. At least now you know about the possibility.
Resources
Cheers!