diff를 사용하여 새 파일의 내용과 생성된 새 빈 파일 표시

diff를 사용하여 새 파일의 내용과 생성된 새 빈 파일 표시

이 네 가지 명령을 실행한 후 디렉터리 "a"에는 "test" 콘텐츠가 포함된 파일 "1"이 있고, 파일 "2"는 비어 있고, 디렉터리 "b"는 비어 있습니다.

$ mkdir a
$ mkdir b
$ echo test > a/1
$ touch a/2

우리는 달릴 수 있어

$ diff -r a b
Only in a: 1
Only in a: 2

이는 패치에 도움이 되지 않습니다. 또는 다음을 실행할 수 있습니다.

$ diff -rN a b
diff -rN a/1 b/1
1d0
< test

이는 파일 "1"의 내용을 봤기 때문에 훌륭하게 작동했지만 이제 파일 "2"가 사라졌습니다. 이는 -N플래그가 "존재하지 않는 파일을 빈 파일로 처리"를 의미하기 때문입니다. 따라서 diff는 빈 파일 "a/2"와 (실제로 비어 있기 때문에 가장하는) 빈 파일 "b/2"를 볼 수 없습니다. 사이의 차이.

단일 실행에서 새 빈 파일이 생성되었음을 diff와 비어 있지 않은 새 파일의 내용을 패치가 사용할 수 있는 형식으로 표시하도록 하는 방법이 있습니까?

아니면 비교할 새로운 옵션이 필요합니까?

답변1

불행하게도 GNU diffutils의 바닐라 버전은 (빈 파일 제거)와 같은 변경 사항을 diff처리할 수 없습니다 .b반점이 상황에 유용할 수 있습니다. 그것은 다음과 같이 사용될 수 있습니다세트데비안/우분투에서.

관련 정보