본문 바로가기

개발자 기본 소양

diff 로 두 디렉토리 파일 비교

출처 : http://blog.naver.com/johnforstar/30113040636

diff 명령어를 사용할 때 아무 옵션도 주지 않고 두 디렉토리를 비교하게 되면, 두 디렉토리에 어떤 파일만 있는지 혹은 어떤 디렉토리만 있는지, 어떤 디렉토리가 공통인지 에 대해서만 알려준다.

그래서 두 디렉토리의 어떤 파일들이 서로 다른지 알고 싶을 경우에는 -r 옵션을 주어서 전체 디렉토리 트리를 재귀적으로 탐색하면서 비교할 필요가 있다.  그리고 -q 옵션을 주어서 다른 파일들을 line by line 으로 비교하는 것을 없애주면 더욱더 보기 좋게 된다.


여기서 추가적으로 | 를 사용하여 sort 를 하게 되면 다른 것들이 알파벳 순서로 정렬이 되어서 출력이 되어 보기가 훨씬 수월해 진다.

간단한 팁 같지만 여러모로 쓰기에 유용한 팁 같아서 따로 글로 남겨둔다. :)


 $ diff -rq dir1 dir2 | sort


다른 예제: dir1, dir2 의 다른 파일들중에서 "some_text" 가 들어가 있는 파일들을 알파벳 순서로 정렬한 뒤, 목록을 diff.txt 파일로 저장한다.

 $ diff -rq dir1 dir2 | grep "some_text" | sort > diff.txt

나 같으면 소스 상에 .git들이 있어서 차이가 나서 제외하고 싶었다. 그럴땐 -exclude 옵션을 쓰면 된다.

 $ diff -rq --exclude=.git /home/test/android android /home/sync/android


'개발자 기본 소양' 카테고리의 다른 글

GIT 개념도  (0) 2013.01.11
spi i2c 개요  (0) 2012.09.20
디스크와 파일 시스템  (0) 2012.05.08
SWAP  (0) 2012.04.30
오픈소스 라이센스 비교  (0) 2012.04.11