Compare two text files. diff reports lines that differ between file1 and file2. Output consists of lines of context from each file, with file1 text flagged by a < symbol and file2 text by a > symbol. Context lines are preceded by the ed command (a, c, or d) that would be used to convert file1 to file2. If one of the files is -, standard input is read. If one of the files is a directory, diff locates the filename in that directory corresponding to the other argument (e.g., diff my_dir junk is the same as diff my_dir/junk junk). If both arguments are directories, diff reports lines that differ between all pairs of files having equivalent names (e.g., olddir/program and newdir/program); in addition, diff lists filenames unique to one directory, as well as subdirectories common to both. See also cmp.
Treat all files as text files. Useful for checking to see if binary files are identical.
Ignore repeating blanks and end-of-line blanks; treat successive blanks as one.
Ignore blank lines in files.
Context diff: print 3 lines surrounding each changed line.
Context diff: print n lines surrounding each changed line. The default context is 3 lines.
To speed up comparison, ignore segments of numerous changes and output a smaller set of changes.
When handling C files, create an output file that contains all the contents of both input files, including #ifdef and #ifndef directives that reflect the directives in both files.
Produce a script of commands (a, c, d) to re-create file2 from file1 using the ed editor.
For context and unified diff, show the most recent line containing regexp before each block of changed lines.
Speed output of large files by scanning for scattered small changes; long stretches with many changes may not show up.
Print brief usage message.
In an attempt to find a more compact listing, keep n lines on both sides of the changed lines when performing the comparison.
Ignore case in text comparison. Uppercase and lowercase are considered the same.
Ignore lines in files that match the regular expression regexp.
Paginate output by passing it to pr.
-Llabel, --labellabel, --label=label
For context and unified diff, print label in place of the filename being compared. The first such option applies to the first filename and the second option to the second filename.
For two-column output (-y), show only left column of common lines.
Produce output in RCS diff format.
Treat nonexistent files as empty.
When handling files in C or C-like languages such as Java, show the function containing each block of changed lines. Assumes -c, but can also be used with a unified diff.
If two directories are being compared and the first lacks a file that is in the second, pretend that an empty file of that name exists in the first directory.
Output only whether files differ.
Compare subdirectories recursively.
Indicate when files do not differ.
For directory comparisons, begin with the file filename, skipping files that come earlier in the standard list order.
For two-column output (-y), do not show common lines.
Produce output with tabs expanded to spaces.
Insert initial tabs into output to line up tabs properly.
Unified diff: print old and new versions of lines in a single block, with 3 lines surrounding each block of changed lines.
Unified diff: print old and new versions of lines in a single block, with n lines surrounding each block of changed lines. The default context is 3 lines.
Print version number of this version of diff.
Ignore all whitespace in files for comparisons.
For two-column output (-y), produce columns with a maximum width of n characters. Default is 130.
Do not compare files in a directory whose names match regexp.
Do not compare files in a directory whose names match patterns described in the file filename.
Produce two-column output.
For context and unified diff, print n lines of context. Same as specifying a number with -C or -U.