Linux: Compare Files or Directory: diff

By Xah Lee. Date: . Last updated: .

How to tell if 2 binary files have identical content?

cmp filename1 filename2

If 2 files have same content, there's no output. Else it'll print the first byte count that's different, example:

file1 file2 differ: byte 174, line 4

How to compare 2 text files's differences?

diff ~/myfile1 ~/myfile2

Most useful options of diff:

How to check if 2 directories are the same? (same files and subdirs)

# compare 2 directories, show only missing files/dir
diff -r --brief  ~/mydir1 ~/mydir2

The “-r” means recurvise (all subdirs), and the “--brief” means only output if files differ (as opposed to how they differ) or non-existant.

Color Diff

diff doesn't have color option. But you can use colordiff. It's a wrapper to diff, but added color.

# install color diff
sudo apt-get install colordiff

Using Git for Diff

# diff files using git, ignore git index (staged) file
git diff --color --no-index file1 file2

If the files are outside any git repository, then --no-index is not necessary. You can also set git to use color always.

Advantages of using git diff:

See also: Git: Diff Between {Working Dir, Staged Area, Last Commit}

big thanks to Yuri Khan on using git diff.