What is diff
?
Shows difference/comparison between files
Why is it useful?
- Tracking changes: See how a file has evolved over time.
- Comparing versions: Find out what’s different between two versions of a document or code.
- Merging changes: Helps you combine different versions of a file.
- Troubleshooting: Identify what went wrong in a configuration file or program.
How to use it?
The basic command is super simple:
diff file1 file2
Just replace file1
and file2
with the actual names of your files.
Making the output more helpful
diff
has some options to make the output easier to understand:
-u
(or--unified
): Shows the changes in a “unified” format, which is more compact and easier to read.-y
(or--side-by-side
): Displays the files side-by-side, so you can see the differences directly.-w
(or--ignore-all-space
): Ignores differences in whitespace (spaces and tabs), which is helpful if you only care about the content.-r
(or--recursive
): Compares entire directories, not just individual files.-q
(or--brief
): Only tells you if the files are different, not what the differences are.
Example:
Let’s say you have two files, original.txt
and revised.txt
. To see the differences in a unified format:
diff -u original.txt revised.txt
Understanding the output
diff
uses some symbols to show you the changes:
+
: Lines added in the second file.-
: Lines removed from the first file.@@
: Indicates a block of changed lines.
See difference between two folders Basic Usage
diff -qr folder1 folder2
-q
: Only reports when files differ.-r
: Recursively compares subdirectories.
More detailed output
diff -ruN dir1 dir2
-r
: Recursively compares subdirectories.-u
: Produces a unified diff format, which is easier to read.-N
: Treats absent files as empty.
For files
diff -wy file1.txt file2.txt
-w
: for ignoring whitespaces-y
: side by side comparison
Some Very Important Flags
--color=always