Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
DIFF(1) 			  User Commands 			 DIFF(1)

NAME
     diff - compare files line by line

SYNOPSIS
     diff [OPTION]... FILES

DESCRIPTION
     Compare FILES line by line.

     Mandatory arguments to long options are mandatory for short options too.

     --normal
	    output a normal diff (the default)

     -q, --brief
	    report only when files differ

     -s, --report-identical-files
	    report when two files are the same

     -c, -C NUM, --context[=NUM]
	    output NUM (default 3) lines of copied context

     -u, -U NUM, --unified[=NUM]
	    output NUM (default 3) lines of unified context

     -e, --ed
	    output an ed script

     -n, --rcs
	    output an RCS format diff

     -y, --side-by-side
	    output in two columns

     -W, --width=NUM
	    output at most NUM (default 130) print columns

     --left-column
	    output only the left column of common lines

     --suppress-common-lines
	    do not output common lines

     -p, --show-c-function
	    show which C function each change is in

     -F, --show-function-line=RE
	    show the most recent line matching RE

     --label LABEL
	    use LABEL instead of file name and timestamp (can be repeated)

     -t, --expand-tabs
	    expand tabs to spaces in output

     -T, --initial-tab
	    make tabs line up by prepending a tab

     --tabsize=NUM
	    tab stops every NUM (default 8) print columns

     --suppress-blank-empty
	    suppress space or tab before empty output lines

     -l, --paginate
	    pass output through 'pr' to paginate it

     -r, --recursive
	    recursively compare any subdirectories found

     --no-dereference
	    don't follow symbolic links

     -N, --new-file
	    treat absent files as empty

     --unidirectional-new-file
	    treat absent first files as empty

     --ignore-file-name-case
	    ignore case when comparing file names

     --no-ignore-file-name-case
	    consider case when comparing file names

     -x, --exclude=PAT
	    exclude files that match PAT

     -X, --exclude-from=FILE
	    exclude files that match any pattern in FILE

     -S, --starting-file=FILE
	    start with FILE when comparing directories

     --from-file=FILE1
	    compare FILE1 to all operands; FILE1 can be a directory

     --to-file=FILE2
	    compare all operands to FILE2; FILE2 can be a directory

     -i, --ignore-case
	    ignore case differences in file contents

     -E, --ignore-tab-expansion
	    ignore changes due to tab expansion

     -Z, --ignore-trailing-space
	    ignore white space at line end

     -b, --ignore-space-change
	    ignore changes in the amount of white space

     -w, --ignore-all-space
	    ignore all white space

     -B, --ignore-blank-lines
	    ignore changes where lines are all blank

     -I, --ignore-matching-lines=RE
	    ignore changes where all lines match RE

     -a, --text
	    treat all files as text

     --strip-trailing-cr
	    strip trailing carriage return on input

     -D, --ifdef=NAME
	    output merged file with '#ifdef NAME' diffs

     --GTYPE-group-format=GFMT
	    format GTYPE input groups with GFMT

     --line-format=LFMT
	    format all input lines with LFMT

     --LTYPE-line-format=LFMT
	    format LTYPE input lines with LFMT

	    These format options provide fine-grained control over the output

	    of diff, generalizing -D/--ifdef.

     LTYPE is 'old', 'new', or 'unchanged'.
	    GTYPE is LTYPE or 'changed'.

	    GFMT (only) may contain:

     %<     lines from FILE1

     %>     lines from FILE2

     %=     lines common to FILE1 and FILE2

     %[-][WIDTH][.[PREC]]{doxX}LETTER
	    printf-style spec for LETTER

	    LETTERs are as follows for new group, lower case for old group:

     F	    first line number

     L	    last line number

     N	    number of lines = L-F+1

     E	    F-1

     M	    L+1

     %(A=B?T:E)
	    if A equals B then T else E

	    LFMT (only) may contain:

     %L     contents of line

     %l     contents of line, excluding any trailing newline

     %[-][WIDTH][.[PREC]]{doxX}n
	    printf-style spec for input line number

	    Both GFMT and LFMT may contain:

     %%     %

     %c'C'  the single character C

     %c'\OOO'
	    the character with octal code OOO

     C	    the character C (other characters represent themselves)

     -d, --minimal
	    try hard to find a smaller set of changes

     --horizon-lines=NUM
	    keep NUM lines of the common prefix and suffix

     --speed-large-files
	    assume large files and many scattered small changes

     --color[=WHEN]
	    color  output;  WHEN  is 'never', 'always', or 'auto'; plain --color
	    means --color='auto'

     --palette=PALETTE
	    the colors to use when --color is active; PALETTE is  a  colon-sepa-
	    rated list of terminfo capabilities

     --help
	    display this help and exit

     -v, --version
	    output version information and exit

     FILES  are  'FILE1  FILE2'  or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'.  If
     --from-file or --to-file is given, there are no  restrictions  on	FILE(s).
     If  a FILE is '-', read standard input.  Exit status is 0 if inputs are the
     same, 1 if different, 2 if trouble.

AUTHOR
     Written by Paul Eggert, Mike Haertel, David Hayes,  Richard  Stallman,  and
     Len Tower.

REPORTING BUGS
     Report bugs to: bug-diffutils@gnu.org
     GNU diffutils home page: <https://www.gnu.org/software/diffutils/>
     General help using GNU software: <https://www.gnu.org/gethelp/>

COPYRIGHT
     Copyright	(C) 2025 Free Software Foundation, Inc.  License GPLv3+: GNU GPL
     version 3 or later <https://gnu.org/licenses/gpl.html>.
     This is free software: you are free to change and redistribute  it.   There
     is NO WARRANTY, to the extent permitted by law.

SEE ALSO
     wdiff(1), cmp(1), diff3(1), sdiff(1), patch(1)

     The  full documentation for diff is maintained as a Texinfo manual.  If the
     info and diff programs are properly installed at your site, the command

	    info diff

     should give you access to the complete manual.

diffutils 3.12			   April 2025				 DIFF(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gdiff&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help