본문 바로가기

엔지니어/Linux

Linux patch 파일 만들기 & 적용하기

728x90
반응형

patch 파일 만들기


'diff' 명령을 사용해서 patch 파일을 만든다.

① 파일 vs 파일 비교

diff [옵션] [원본파일] [수정된파일] > 출력파일.patch

예) diff -u display.c display_new.c > display.c.patch

② 디렉토리 vs 디렉토리 비교

-r 옵션이 주어지지 않으면 재귀적 동작이 이루어 지지 않는다.

파일들의 비교 결과물이 .patch 파일에 모두 출력된다.

diff [옵션] [디렉토리1] [디렉토리2] > 출력파일.patch

예) diff -urN driver/ driver_new/ > driver.patch

③ 주요 옵션

일반적으로 -urN을 많이 사용한다. 좀 더 자세한 옵션은 'diff --help'로 알아보면 된다. 

 

-u : '--unified=3' 형식으로 결과를 표시한다. unified  형식으로 출력되며, 수정된 부분의 앞뒤

      동일한 내용을 3줄만 표시한다.  --unified=2 을 사용하면 동일한 라인을 2줄만 표시한다. 

-r : recursive. 재귀적 검색. 하위 디렉토리를 모두 검색하여 비교한다.

-N : new file. 두 디렉토리 중 어느 한 디렉토리에만 파일이 있는 경우에도

      두 디렉토리 모두에 같은 파일이 존재한다고 가정하고 비교를 진행한다. 

 

patch 파일 적용하기


'patch' 명령을 사용해서 patch된 결과를 적용한다.

① 사용법

patch [옵션] < 결과파일.patch

예) patch -p0 < display.patch

 

② 주요 옵션

-p : -pNUM 형식으로 사용한다(NUM=숫자). NUM은 patch 파일안에 적힌 patch를 적용

      할 파일의 경로에서 NUM 만큼의 앞 단계를 벗겨내라는 의미인다.

      예를 들어, patch 파일안에 '--- driver/src/display.c'라는 경로가 있는 경우,

      -p1을 사용하면 'src/display.c' 파일에 해당 patch를 적용한다.



반응형

'엔지니어 > Linux' 카테고리의 다른 글

메모리 종류 (RAM 종류)  (0) 2017.01.17
CentOS 7 기본설정  (0) 2017.01.17
backdoor 탐지  (0) 2017.01.17
nginx_stats(zabbix nginx script)  (0) 2017.01.16
nginx 1.8 + tomcat 8  (0) 2017.01.16