diff & patch

■diff로 patch 파일 만들기
/opt/src.orig와 /opt/src 두 디렉토리를 비교하여 변경 부분을 patch 파일 형태로 출력한다.
diff -Naur /opt/src.orig /opt/src > src.patch

/opt/src.orig와 /opt/src 두 디렉토리를 비교하여 변경된 파일들만 체크 한다.
diff -qr /opt/src.orig /opt/src > src.patch


■diff
-q: 두 파일이 다를 경우에만 알려준다.
-u: unified 출력 형식을 사용한다.
-q: 두 파일의 자세한 차이점이 비교하는 것이 아니라, 단순히 두 파일이 다른지만 알려준다.
-N, --new-file: 디렉토리 비교에서, 어떤 파일이 한 디렉토리에만 있다면 다른 디렉토리에는 비어었는 파일이 있는 것처럼 비교한다.
-r: 두 디렉토리를 비교할 때, 모든 하위 디렉토리는 재귀적으로(recursively) 비교한다.
-a, --text: 모든 파일을 텍스트 파일로 처리
--strip-trailing-cr: 입력 시 후행 캐리지 리턴 제거
--binary: 이진 모드로 데이터 읽기 및 쓰기

diff -Naur <old file> <new file> > test.patch


■patch
patch -p1 < ../src.patch
-p1는 patch 파일 내 경로에서 앞에서 몇개를 지우고 적용할지를 명시한다. p0는 원본 풀패스 그대로 적용한다.

patch -p1 -R < main.patch
-R 옵션은 이미 적용된 패치를 제거하여 원본으로 되돌린다.
위로 스크롤