Linux
diff와 patch 사용
정든친구
2019. 8. 8. 16:08
diff -urN --execlude='*.tmp' <예전 디렉토리/파일> <새 디렉토리/파일>
-u: 통합(Unified)형식으로 결과물을 출력
-r: 재귀적(Recursive) 디렉토리를 탐색하라
-N: 존재하지 않는 파일을 비어있다고 취급하라는 의미
--execlude='*.tmp': *.tmp 파일을 제외한 나머지 파일만 비교하라
패치파일 생성
diff -urN --execlude='*.tmp' ./from_dir ./to_dir > diff_result.diff
패치 적용
$ rm to_dir
$ ls
from_dir
$ cat ./diff_result.diff | patch -p1
-p: 패치 파일에 들어 있는 /(슬래시) 문자를 제거
- -p0: 전체 파일 경로 그대로 사용
- -p1: 경로 중 앞의 /(슬래시) 하나를 날림. /home/sample/src/lab1/test.c -> home/sample/src/lsb1/test.c
- -p4: 4번째 /(슬래시) 까지의 문자를 모두 제거. /home/sample/src/lab1/test.c -> lab1/test.c