Linux commands: diff
By Flavio
Tagged: CLI
Learn how the Linux diff command compares two files or directories line by line, with -y for a side-by-side view and -u for the unified format Git uses.
diff is a handy command. Suppose you have 2 files, which contain almost the same information, but you can’t find the difference between the two.
diff will process the files and will tell you what’s the difference.
Suppose you have 2 files: dogs.txt and moredogs.txt. The difference is that moredogs.txt contains one more dog name:

diff dogs.txt moredogs.txt will tell you the second file has one more line, line 3 with the line Vanille:

If you invert the order of the files, it will tell you that the second file is missing line 3, whose content is Vanille:

Using the -y option will compare the 2 files line by line:

The -u option however will be more familiar to you, because that’s the same used by the Git version control system to display differences between versions:

Comparing directories works in the same way. You must use the -r option to compare recursively (going into subdirectories):

In case you’re interested in which files differ, rather than the content, use the r and q options:

There are many more options you can explore in the man page running man diff:

The diff command works on Linux, macOS, WSL, and anywhere you have a UNIX environment
If you’d rather compare two texts in the browser, try my free diff checker.
Want me to talk about your product? You can sponsor this site.
Related posts about cli: