Linux: Compare Files or Directory: diff

By Xah Lee. Date: . Last updated: .

Compare Binary Files

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.

Sample output:

file1 file2 differ: byte 174, line 4

Compare Text Files

How to compare 2 text files's differences?

diff file1 file2

Most useful options of diff:

Compare Directories

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

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

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}

2013-06-14 big thanks to Yuri Khan on using git diff.

Linux Shell Basics

  1. Get System Info
  2. Shell Basics
  3. grep, cat, awk, uniq
  4. sort
  5. find, xargs
  6. diff Files/Dir
  7. dir size: du
  8. dir tree
  9. tar gzip bzip2 xz 7zip rar zip
  10. wget, curl, GET, HEAD
  11. rsync
  12. Install Packages

Sys Admin

  1. Job Control
  2. ps
  3. top
  4. htop
  5. RAM stat
  6. Users and Groups
  7. File Permission
  8. Opened Files: lsof
  9. shutdown, sleep


  1. Bash Keys, Terminal Keys, Man Page Keys
  2. Bash Prompt Setup
  3. Bash Color Prompt
  4. .bashrc, .profile, .bash_profile
  5. Virtual Console
  6. Terminal Control Sequence Keys
  7. Reset Terminal
  8. tmux
  9. man page
  10. Bash Manual in Chapters
  11. BASH Shell Misc Tips
  12. Log Terminal Session

Linux Desktop

  1. Most Useful GUI Apps
  2. Set Default App
  3. Shell Commands for GUI Apps
  4. Image Viewers
  5. Music Players
  6. Move File to Trash by Command
  7. X11 Selection and Clipboard
  8. How to Switch to LXDE, Xfce
  9. LXDE Keyboard Shortcuts
  10. LXDE/Openbox, Change Keyboard Shortcuts
  11. LXDE Set Key Repeat Rate
  12. LXDE/OpenBox, Disable Mouse Scroll Wheel Hide Window
  13. Xfce Keyboard Shortcuts
  14. Xfce Good Themes
  15. xmonad Keybinding
  16. How to Restart X11
  17. Why Tiling Window Manager Sucks
  18. Standard Fonts
  19. How to Install Font

If you have a question, put $5 at patreon and message me.