DIFF(1)

이름
diff - 두 파일에서 차이점을 찾는다.

사용법
diff [options] from-file to-file

설명
간단한 예로, diff 는 from-file 와 to-file 의 두파일의 내용을 비교한다. - 의 파일명은 표준입력으로부터 읽어들여 내용을 나타낸다. 특별한 경우로, diff - - 는 자기 자신을 표준입력으로 비교한다. If from-file 이 디렉토리이고, to-file 이 아니라면 diff 는 to-file의 파일과 from-file안의 파일을 비교한다. from-file 과 to-file 이 모두 디렉토리라면, diff 는 알파벳 순서로 두 디렉토리 안의 상응하는 파일을 비교한다; 이 비교는 -r이나 -recursive옵션이 주어지지 않으면 재귀적이 아니다. diff 는 파일인양 실제 디렉토리를 비교하지는 않는다. 표준입력은 같은 이름을 가진 파일개념을 적용하지 않기때문에 꽉찬 파일은 표준입력되지 않을 수 있다. diff 은 -, 로 시작된다, 그래서 대게 from-file 과 to-file 은 - 로 시작되지 않을런지 모른다.

  Options
아래는 그뉴 diff에서 쓰이는 모든 옵션들의 요약이다. 대부분의 옵션은 두개의 이름을 갖는다. 하나는 -에 앞서는 단일 문자이고, 다른 하나는 --에 앞서는 긴 이름이다. 복수의 단일 문자 옵션은 단일 명 령행에 결합될 수 있다: -ac는 -a-c와 같다. 긴 이름의 옵션은 그 이름의 특정부분만으로 줄여 쓸수가 있다. 대괄호 ([ 와 ]) 은 옵션이 임의의 인자를 갖는다는 것을 가리킨다.

-lines
    문맥의 라인을 보여준다. 이 옵션은 자신에의해 출려형으로 지정되지 않] 는다; -c나 -u없이는 아무런 효과가 없다. 이옵션은 정확하다. 적절하게 사용하면 패치는 적어도 내용의 두행정도는 필요하다.

-a  텍스트같아 보이지 않아도 텍스트로 된 모든 파일을 다루고 행간 비교를 한다.

-b  빈공간 총량의 변화를 무시한다.

-B  빈행에 삽입하거나 삭제와 같은 변화를 무시한다.

--brief
    대충의 파일 다른점을 보고한다.

-c  내용 출력폼을 사용한다.

-C lines

--context[=lines]
    는 context로 출력한다. Use the context output format, showing lines (an integer) lines of context, or three if lines is not given. For proper operation, patch typically needs at least two lines of context.

--changed-group-format=format
    if-then-else 포맷의 두 파일로 부터 다른 행을 포함하는 행그룹을 출력하는 포맷을 사용한다.

-d  아주 조그마한 변화라도 찾도록 알고리즘을 바꾼다. 이 옵션은 diff의 수행 속도를 아주 느리게 한다.

-D name

-e

--ed
    유효한 ed 스크립트 출력을 한다.

--exclude=pattern
    디렉토리를 비교할때, 파일과 서브디렉토리의 basename이 pattern과 일치 하면 무시한다.

--exclude-from=file
    디렉토리를 비교할때, 파일과 서브디렉토리의 basename이 file에 있는 어떠한 pattern 과도 일치하면 무시한다.

--expand-tabs
    출력파일에서 탭의 정렬을 위해 탭공간을 넓게 한다.

-f  ed 스크립트와 같이 모호하게 보여출력을 하지만, 파일에 나타난 순서대로 정돈된다.

-F regexp
    각각의 차이점들을 위해 context와 특정한 포맷에서 regexp와 일치하는 앞의 행을 몇개 보여준다.

--forward-ed
    ed 스크립트와 같이 모호하게 보여출력을 하지만, 파일에 나타난 순서대로 정돈된다.

-h  현재 이 옵션은 쓰이지 않는다; 단지 유닉스에 호환하기 위함이다.

-H  큰 파일을 빠르게 처리하기 다루기 위해 사용된다.

--horizon-lines=lines
    Do not discard the last lines lines of the common prefix and the first lines lines of the common suffix.

-i  Ignore changes in case; consider upper- and lower-case letters equivalent.

-I regexp
    regexp와 일치하는 삽입 혹은 삭제행의 변화를 무시한다.

--ifdef=name
    프리프로세서의 상태에 따라 if-then-else포맷 출력을 합친다.

--ignore-all-space
    행을 비교할때 공백을 무시한다.

--ignore-blank-lines
    공백에 삽입또는 삭제의 변화를 무시한다.

--ignore-matching-lines=regexp
    regexp와 일치하는 삽입,삭제행을 무시한다.

--ignore-space-change
    공백의 양의 변화를 무시한다.

--initial-tab
    Output a tab rather than a space before the text of a line in normal or context format. This causes the alignment of tabs in the line to look normal.

-l  pr을 통해 페이지출력을 한다.

-L label

--label=label
    context포맷과 특정(unified)포맷 헤더대신 라벨을 사용한다.

--left-column
    양쪽 행중 왼쪽열만을 출력한다.

--line-format=format
    in-then-else포맷의 모든 입력행 출력을 포맷한다.

--minimal
    약간의 설정변화가 있으면 알고리즘을 바꾼다. 이것은 diff의 처리속도를 늦춘다.(종종 아주 느려진다.)

-n  RCS-포맷의 차이점을 출력한다;

-N

--new-file
    비교하는 디렉토리에 파일이 하나의 디렉토리에만 있다면, 모두 있는 것처럼 처리를 하지만 사실은 다른 한 디렉토리에는 파일이 없다.

-P  디렉토리를 비교할때, 두개의 디렉토리중 두번째 디렉토리에만 파일이 존재한다면, 첫번째 디렉토리에는 사실 파일이 없지만 있는 것처럼 처리한다.

--paginate
    페이지단위로 출력한다.

-q  두 파일의 다른점만 출력한다.

-r  두 디렉토리를 비교할때, 모든 서브디렉토리는 재귀적으로(recursively) 비교한다.

--rcs
    RCS-포맷 diff들을 출력한다.

--recursive
    두 디렉토리를 비교할때, 모든 서브디렉토리는 재귀적으로(recursively) 비교한다.

--report-identical-files

-s  두 파일이 같을 때 보고(report)한다.

-S file
    When comparing directories, start with the file file. This is used for resuming an aborted comparison.

--sdiff-merge-assist
    sdiff의 정보를 출력한다. sdiff 는 sdiff가 diff를 실행할때 이 옵션을 사용한다. 이 옵션은 직접 사용하고 싶은 사용자를 위해 쓰인다.

--show-function-line=regexp
    각각의 차이점들을 위해 context와 특정한 포맷에서 regexp와 일치하는 앞의 행을 몇개 보여준다.

--side-by-side
    두개의 비교대상을 나란히 출력한다.

--starting-file=file
    디렉토리를 비교할때, file 부터 시작한다. 이것은 abort된 비교를 다시 시작하기 위해 사용된다.

--suppress-common-lines
    두개의 포맷에서 공통된 행은 출력하지 않는다.

-t  입력 파일에서 탭의 정렬을 지키해 위해 출력시 탭의 공간을 확장한다.

-T  Output a tab rather than a space before the text of a line in normal or context format. This causes the alignment of tabs in the line to look normal.

--text
    모든 파일을 텍스트로써 다루고, 행대행(line-by-line)을 비교한다.

-u  통일된 출력포맷을 사용한다.

--unidirectional-new-file
    디렉토리를 비교할때, 두개의 디렉토리중 두번째 디렉토리에만 파일이 존재한다면, 첫번째 디렉토리에는 사실 파일이 없지만 있는 것처럼 처리한다.

-U lines

--unified[=lines]
    Use the unified output format, showing lines (an integer) lines of context, or three if lines is not given. For proper operation, patch typically needs at least two lines of context.

-v

--version
    diff 의 버전을 출력한다.

-w  두 행의 비교시 공백을 무시한다.

-W columns

--width=columns
    Use an output width of columns in side by side format.

-x pattern
    디렉토리들의 비교시, pattern 과 일치하는 파일과 서브디렉토리를 무시한다.

-X file
    디렉토리 비교시, file 에 포함된 모든 형태와 일치하는 파일과 서브디렉토리를 무시한다.

-y  Use the side by side output format.

관련 항목
cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1).

진단
종료시 0은 차이점이 없는 것이고, 1을 차이점이 있고, 2는 문제가 발생한 것을 의미한다.

역자
ASPLINUX<man@asp-linux.co.kr>, 2000년 7월 29일