목적
구문
두 파일의 내용을 비교하는 방법
diff [ -c| -C Lines | -D [ String ] | -e | -f | -n ] [ -b ] [ -i] [ -t ] [ -w ] File 1 File2
diff [ -h ] [ -b ] File 1 File2
디렉토리의 내용을 순서대로 정렬하고 서로 다른 파일을 비교하는 방법
diff [ -c | -C Lines | -e | -f | -n ] [ -b ] [ -i ] [ -l ] [ -r ] [ -s ] [ -S File ] [ -t ] [ -w ] Directory1 Directory2
diff [ -h ] [ -b ] Directory1 Directory2
설명
diff 명령은 텍스트 파일을 비교합니다. 단일 파일들 또는 디렉토리의 내용을 비교할 수 있습니다.
diff 명령은 텍스트 파일인 입력 파일에서만 사용 가능합니다.
Directory1 매개변수와 Directory2 매개변수를 지정한 경우 diff 명령은 두 디렉토리에서 같은 이름을 가진 텍스트 파일을 비교합니다. 서로 다른 2진 파일, 공통 서브디렉토리, 한 디렉토리에 존재하는 파일들을 나열합니다.
diff 명령을 일반 파일에서 실행할 때와 디렉토리 비교시 다른 텍스트 파일을 비교할 때, diff 명령은 파일들을 일치시키기 위해 어떤 행들을 변경해야 하는지를 말해줍니다. File1 또는 File2 매개변수 모두 디렉토리가 아닌 경우에는 표준 입력(STDIN)이 사용되도록 모두에 -(빼기 부호)를 붙일 수 있습니다. File1 매개변수가 디렉토리이면, 파일 이름이 File2 매개변수와 동일한 디렉토리에 있는 파일이 사용됩니다.
Lines Affected in File1 Action Lines Affected in File2 Number1 a Number2[,Number3] Number1[,Number2] d Number3 Number1[,Number2] c Number3[,Number4]
이 행은 File1을 File2로 변환하기 위한 ed 부속 명령과 유사합니다. acton 문자 앞의 숫자는 File1에 관계되며, action 뒤의 숫자는 File2에 관계됩니다. 따라서, a를 d로 교환하고 오른쪽에서부터 왼쪽으로 읽으면, File2를 File1으로 변환하는 방법을 알 수 있습니다. ed 명령에서, 동일한 쌍(여기서는 Number1 = Number2)은 하나의 숫자로 축약됩니다.
이 행을 각각 수행하면서 diff 명령은 <:가 앞에 있는 첫 번째 파일에서 영향을 받는 모든 행을 표시한 다음 >가 앞에 있는 두 번째 파일에서 영향을 받는 모든 행을 표시합니다.
종료값 0은 차이점이 없음을 나타내고, 종료값 1은 차이점이 발견되었음을, 그리고 종료값 2는 오류임을 나타냅니다.
-c, -C, -D, -e, -f 또는 -n 플래그 중 하나를 지정하면 명령행의 마지막 플래그가 선행합니다. 시스템은 오류 메시지를 발행하지 않습니다.
플래그
종료 상태
차이점이 발견되지 않았습니다. | |
차이점이 발견되었습니다. | |
오류가 발생했습니다. |
예제
이 명령은 파일 chap1.bak와 chap1 사이의 차이점을 표시합니다.
2. 공백 문자의 양은 무시하면서 두 개의 파일을 비교하려면 다음을 입력하십시오.
diff -w prog.c.bak prog.c
두 행에서 단어들 사이의 공백과 탭 수만이 서로 다를 경우, diff -w 명령은 이들을 동일한 것으로 간주합니다.
3. ed 명령을 사용하여 서로 다른 파일을 다시 구성할 수 있는 명령이 포함된 파일을 만들려면 다음을 입력하십시오.
diff -e chap2 chap2.old >new.to.old.ed
그러면 chap2를 chap2.old에 있는 버전의 텍스트로 변경하는 ed 부속 명령이 포함된 new.to.old.ed 파일이 작성됩니다. 대부분의 경우, new.to.old.ed는 chap2.old보다 크기가 훨씬 작은 파일입니다. chap2.old을 삭제하여 디스크 공간을 절약할 수 있으며, 다음 명령을 입력하여 언제라도 이를 다시 재구성할 수 있습니다.
(cat new.to.old.ed ; echo '1,$p') | ed - chap2 >chap2.old
괄호 안의 명령은 1,$p를 ed 편집기에서 사용되는 편집 명령의 맨 끝에 추가됩니다. 1,$p는 ed 명령이 파일을 편집한 후 이를 표준 출력(STDOUT)에 쓰도록 합니다. 이러한 수정된 일련의 명령은 ed 명령(| ed)으로 파이프되고, 편집기는 이를 표준 입력(STDIN)으로 읽습니다. - 플래그는 ed 명령이 파일 크기 및 다른 추가 정보를 표시하지 않도록 하는데, 이유는 이러한 정보가chap2.old의 텍스트와 혼합될 수 있기 때문입니다
'리눅스' 카테고리의 다른 글
[config] qmail life time (0) | 2010.04.26 |
---|---|
[install] qmail+vpopmail+qmailadmin 설치 (0) | 2010.04.26 |
[Linux] parted (대용량 하드 잡기) (0) | 2010.04.26 |
[Linux] crontab 실행결과 root로 메일 발송 설정 제거 (0) | 2010.04.26 |
[Linux] single mode (refair filesystem) (0) | 2010.04.26 |