>시스템 튜토리얼 >리눅스 >패치 파일에 대한 심층적인 이해: diff 명령 생성 및 공통 매개변수 분석

패치 파일에 대한 심층적인 이해: diff 명령 생성 및 공통 매개변수 분석

PHPz
PHPz원래의
2024-06-27 08:35:46601검색

深入了解 patch 文件:diff 指令生成与常用参数解析

패치 파일은 diff 명령(linuxdiff, svndiff, gitdiff, gitformat-patch)에 의해 생성됩니다.

먼저 diff 명령과 공통 매개변수를 소개하겠습니다.

차이점:

diff의 기능은 두 파일의 차이점을 비교한 후 기록하는 것인데, 이것이 소위 diff 패치입니다. 문장형식 : diff [옵션] 소스파일(폴더) 대상파일(폴더) 리눅스 운영체제가 좋은데, 소스파일(폴더)를 패치해서 linux patchMarco linux 를 대상파일(클립)로 만드는 것, 용어는 "업그레이드"입니다. 가장 일반적으로 사용되는 세 가지 옵션은 다음과 같습니다.

-r은 재귀 옵션입니다. linux to patch를 설정하면 diff는 하위 디렉터리 파일을 포함하여 서로 다른 두 버전의 소스 코드 디렉터리에 있는 모든 해당 파일을 동시에 비교합니다.

-N 옵션은 패치 파일이 파일이 생성되거나 삭제된 상황을 올바르게 처리하도록 보장합니다.

-u 옵션은 기본 형식보다 더 컴팩트한 통합 형식으로 패치 파일을 생성합니다.

2、패치

————————————————————————

linux 打patch_linux 打patch_linux 打patch

NAME

원본 파일에 패치 적용

시놉시스

패치[옵션][원본파일[패치파일]]

하지만보통은 그냥

패치-pnum

————————————————————————

간단히 말하면 패치는 diff로 만든 패치를 이용하여 원본 파일(폴더)과 대상 파일(폴더)을 변환하는 것입니다. 즉, 원본 파일(폴더)->대상 파일(폴더)이 있을 수도 있고, 대상 파일(폴더)->소스 파일(폴더)가 있을 수도 있습니다. 가장 일반적으로 사용되는 옵션은 다음과 같습니다.

-p0 옵션은 현재 디렉터리에서 대상 파일(폴더)을 찾는 것입니다

-p1 옵션은 첫 번째 수준 디렉터리를 무시하고 현재 디렉터리부터 검색을 시작합니다.

비슷한 -p2 옵션은 두 번째 수준 디렉터리를 무시해야 합니다.

......

**************************************************************************************************** ***** *************

예는 다음과 같습니다.

---이전/모듈/pcitableMonSep2711:03:561999

+++new/modules/pcitableTueDec1920:05:412000

-p0 매개변수를 사용하면 현재 디렉터리에서 old라는 폴더를 찾고, 그 아래 모듈 아래에서 pcitable 파일을 찾아 패치 작업을 수행한다는 의미입니다.

-p1 매개변수를 사용하면 첫 번째 수준 디렉터리를 무시하고(즉, 이전 디렉터리와 상관없이) 현재 디렉터리에서 모듈 폴더를 찾고 그 아래에서 pcitable을 찾는다는 의미입니다. 이에 대한 전제는 현재 디렉터리가 모듈이 위치한 디렉터리여야 한다는 것입니다. diff 패치 파일은 diff 패치 파일의 경로가 지정되어 있는 한 어느 위치에나 있을 수 있습니다. 실제로 상대 경로나 절대 경로를 사용할 수 있습니다. 하지만 저는 보통 상대 경로를 사용합니다.

**************************************************************************************************** ***** *************

-E 옵션은 빈 파일이 발견되면 삭제함을 나타냅니다.

-R 옵션은 패치 파일에 있는 "새" 파일과 "이전" 파일을 이제 교환한다는 의미입니다(실제로는 새 버전을 패치하여 이전 버전이 되도록 만드는 것입니다)

linux 打patch_linux 打patch_linux 打patch

패치 파일의 구조

패치 헤드

패치 헤더는 ---/+++로 시작하는 두 줄로, 패치할 파일을 나타냅니다. ---는 이전 파일을 나타내고 +++는 새 파일을 나타냅니다.

하나의 패치 파일에 여러 개의 패치

패치 파일에는 ---/+++로 시작하는 여러 섹션이 포함될 수 있으며, 각 섹션은 패치를 적용하는 데 사용됩니다. 따라서 패치 파일에는 많은 패치가 포함될 수 있습니다.

블록

블록은 패치에서 변경할 수 있는 장소입니다. 일반적으로 변경할 필요가 없는 것으로 시작하고 끝납니다. 단지 변경될 위치를 나타내는 데 사용됩니다. 일반적으로 @@로 시작하고 다른 블록이나 새 패치 헤더의 시작으로 끝납니다.

linux 打patch_linux 打patch_linux 打patch

블록 들여쓰기

블록은 한 열씩 들여쓰기되며, 이 열은 줄을 낮추거나 삭제해야 하는지 여부를 나타내는 데 사용됩니다.

블록의 첫 번째 열

+ 기호는 이 줄을 추가해야 함을 나타냅니다.

- 기호는 이 줄을 삭제해야 함을 나타냅니다.

빼기 기호나 음수 기호가 없다는 것은 단지 참조일 뿐이며 변경할 필요가 없다는 의미입니다.

사용법:

patch-p0

patch-p1

위 내용은 패치 파일에 대한 심층적인 이해: diff 명령 생성 및 공통 매개변수 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.