[[email protected] ~]$ cat > file1.txt
a
b
c
d
[[email protected] ~]$ cat > file2.txt
b
c
d
e
ΠΠ°ΡΠ΅ΠΌ ΡΡΠ°Π²Π½ΠΈΠΌ ΡΡΠΈ Π΄Π²Π° ΡΠ°ΠΉΠ»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ comm:
[[email protected] ~]$ comm file1.txt file2.txt
a
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β b
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β c
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β d
Β Β Β Β Β Β Β Β e
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, comm ΠΏΡΠΎΠΈΠ·Π²Π΅Π»Π° Π²ΡΠ²ΠΎΠ΄ Π² ΡΡΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ. ΠΠ΅ΡΠ²Π°Ρ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π²ΡΠΎΡΠ°Ρ β ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΈΠ· Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, ΡΡΠ΅ΡΡΡ β ΡΡΡΠΎΠΊΠΈ, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ Π² ΠΎΠ±ΠΎΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ . ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° comm ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ -n, Π³Π΄Π΅ n ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΈΡΠ»ΠΎΠΌ 1, 2 ΠΈΠ»ΠΈ 3. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π½ΠΎΠΌΠ΅ΡΠ° ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ΄Π°Π²ΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π°Π²ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ 1 ΠΈ 2:
[[email protected] ~]$ comm -12 file1.txt file2.txt
b
c
d
diff β ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ comm, diff ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ diff Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄ Π²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΠ°Π·Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° diff ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (source trees). Π§Π°ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° diff ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ diff-ΡΠ°ΠΉΠ»ΠΎΠ², ΠΈΠ»ΠΈ Π·Π°ΠΏΠ»Π°Ρ (patches), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ patch (ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΡΡ Π½ΠΈΠΆΠ΅), Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π² Π΄ΡΡΠ³ΡΡ.
ΠΡΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ diff ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΠΈΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π΅Π΅ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ.
[[email protected] ~]$ diff file1.txt file2.txt
1d0
< a
4a4
> e
Π ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (ΡΠ°Π±Π». 20.4) Π² ΡΠΎΡΠΌΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ β ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ β Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΈ ΡΠΈΠΏΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°ΠΉΠ» Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ.
Π’Π°Π±Π»ΠΈΡΠ° 20.4. ΠΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ diff
ΠΠΎΠΌΠ°Π½Π΄Π°
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
r1ar2
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠΎΠΊΠΈ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ r2 Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, ΠΏΠΎΡΠ»Π΅ ΡΡΡΠΎΠΊ Π² ΠΏΠΎΠ·ΠΈΡΠΈΠΈ r1 Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
r1cr2
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ (Π·Π°ΠΌΠ΅Π½ΠΈΡΡ) ΡΡΡΠΎΠΊΠΈ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ r1 Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ r2 Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
r1dr2
Π£Π΄Π°Π»ΠΈΡΡ ΡΡΡΠΎΠΊΠΈ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ r1 Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π±Ρ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ r2 Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
Π ΡΡΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ Π»ΡΠ±ΠΎΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ Π½ΠΎΠΌΠ΅ΡΠΎΠ² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π₯ΠΎΡΡ ΡΡΠΎΡ ΡΠΎΡΠΌΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ POSIX ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ diff Π΄Π»Ρ Unix), ΠΎΠ½ Π½Π΅ ΡΠ°ΠΊ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ. ΠΠ²Π° Π΄ΡΡΠ³ΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ°, ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠΈΡ Π±ΠΎΠ»ΡΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ, β ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΠΈ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° (ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -c) Π²ΡΠ²ΠΎΠ΄ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
[[email protected] ~]$ diff -c file1.txt file2.txt
*** file1.txtΒ Β Β Β 2012-12-23 06:40:13.000000000 -0500
--- file2.txtΒ Β Β Β 2012-12-23 06:40:34.000000000 -0500
***************
*** 1,4 ****
- a
Β Β b
Β Β c
Β Β d
--- 1,4 ----
Β Β b
Β Β c
Β Β d
+ e
ΠΡΠ²ΠΎΠ΄ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΈΠΌΠ΅Π½ Π΄Π²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ΅ΡΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π·Π²Π΅Π·Π΄ΠΎΡΠΊΠ°ΠΌΠΈ, Π° Π²ΡΠΎΡΠΎΠΉ β Π΄Π΅ΡΠΈΡΠ°ΠΌΠΈ. ΠΠ° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅ΠΉ ΠΎΡΡΠ°Π²ΡΠ΅ΠΉΡΡ ΡΠ°ΡΡΠΈ Π»ΠΈΡΡΠΈΠ½Π³Π° ΡΡΠΈ ΠΌΠ°ΡΠΊΠ΅ΡΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠΌ ΡΠ°ΠΉΠ»Ρ. ΠΠ°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡΡΡ Π³ΡΡΠΏΠΏΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΈΡΠ»ΠΎ ΠΎΠΊΡΡΠΆΠ°ΡΡΠΈΡ ΡΡΡΠΎΠΊ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. ΠΠ΅ΡΠ²Π°Ρ Π³ΡΡΠΏΠΏΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠΈ *** 1,4 ****, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅ΠΉ Π½Π° ΡΡΡΠΎΠΊΠΈ Ρ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ Ρ 1 ΠΏΠΎ 4 Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅. ΠΠ°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΡΠΎΠΊΠ° --- 1,4 ----, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ°Ρ Π½Π° ΡΡΡΠΎΠΊΠΈ Ρ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ Ρ 1-Π³ΠΎ ΠΏΠΎ 4-ΠΉ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅. ΠΠ½ΡΡΡΠΈ Π³ΡΡΠΏΠΏΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΡΡΡΠΎΠΊΠΈ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ΅ΡΡΡΠ΅Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠ², ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π² ΡΠ°Π±Π». 20.5.
Π’Π°Π±Π»ΠΈΡΠ° 20.5. ΠΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ diff ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ°
ΠΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅
(Π½Π΅Ρ)
Π‘ΡΡΠΎΠΊΠ° ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. Π Π½Π΅ΠΉ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ
-
Π‘ΡΡΠΎΠΊΠ° ΡΠ΄Π°Π»Π΅Π½Π°. ΠΡΠ° ΡΡΡΠΎΠΊΠ° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ
+
Π‘ΡΡΠΎΠΊΠ° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π°. ΠΡΠ° ΡΡΡΠΎΠΊΠ° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ
!
Π‘ΡΡΠΎΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π°. ΠΡΠ²ΠΎΠ΄ΡΡΡΡ Π΄Π²Π΅ Π²Π΅ΡΡΠΈΠΈ ΡΡΡΠΎΠΊΠΈ, ΠΊΠ°ΠΆΠ΄Π°Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π²Π½ΡΡΡΠΈ Π³ΡΡΠΏΠΏΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
Π£Π½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠΉ, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ. ΠΠ°Π΄Π°Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ -u:
[[email protected] ~]$ diff -u file1.txt file2.txt
--- file1.txtΒ Β Β Β 2012-12-23 06:40:13.000000000 -0500
+++ file2.txtΒ Β Β Β 2012-12-23 06:40:34.000000000 -0500
@@ -1,4 +1,4 @@
-a
b
c
d
+e
Π‘Π°ΠΌΠΎΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠΌ ΠΈ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΎΡΠΌΠ°ΡΠ°ΠΌΠΈ β ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΡ ΡΡΡΠΎΠΊ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ΅ΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΡΡΡ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠΌ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅, Π²ΠΈΠ΄Π½Ρ ΡΠ΅ ΠΆΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΡΠΎ ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΡΠΎΠΊΠ° @@ -1,4 +1,4 @@. ΠΠ½Π° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½ΠΎΠΌΠ΅ΡΠ° ΡΡΡΠΎΠΊ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΈ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ°ΠΉΠ»Π°Ρ , ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΡ Π³ΡΡΠΏΠΏΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠ°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡΡΡ ΡΠ°ΠΌΠΈ ΡΡΡΠΎΠΊΠΈ Ρ ΡΡΠ΅ΠΌΡ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) ΡΡΡΠΎΠΊΠ°ΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ°Π±Π». 20.6.
Π’Π°Π±Π»ΠΈΡΠ° 20.6. ΠΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ diff ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ°
ΠΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅
(Π½Π΅Ρ)
Π‘ΡΡΠΎΠΊΠ° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΠΎΠ±ΠΎΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ
-
Π‘ΡΡΠΎΠΊΠ° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
+
Π‘ΡΡΠΎΠΊΠ° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
patch β ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ diff-ΡΠ°ΠΉΠ»Π° ΠΊ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Ρ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° patch ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ. ΠΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²ΡΠ²ΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ diff ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°ΡΡΡ Π²Π΅ΡΡΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ² Π² Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΠ΅. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. Π―Π΄ΡΠΎ Linux ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ, ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π³ΡΡΠΏΠΏΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΈΡΡΡΠΊΠ°Π΅ΠΌΡΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ ΠΈΠ΄ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. Π―Π΄ΡΠΎ Linux Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ ΡΡΡΠΎΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠΈΡΡΠ»Π°Π΅ΠΌΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΎΡΠ΅Π½Ρ Π½Π΅Π²Π΅Π»ΠΈΠΊΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π½Π΅Ρ ΡΠΌΡΡΠ»Π° ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°ΡΡ Π²ΡΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ² ΡΠ΄ΡΠ° Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Π½ΠΎΡΠΈΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ΠΈ ΠΏΡΠΈΡΡΠ»Π°ΡΡ diff-ΡΠ°ΠΉΠ»Ρ. ΠΡΠΈ ΡΠ°ΠΉΠ»Ρ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΡΠ΄ΡΠ° ΠΈ Π½ΠΎΠ²ΠΎΠΉ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠ΅ΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΡΡΠ³ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠΈΠΉ ΡΠ°ΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ patch, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ Π΄Π΅ΡΠ΅Π²Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ². ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ diff/patch Π΄Π°Π΅Ρ Π΄Π²Π° Π²Π°ΠΆΠ½ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°:
β’ diff-ΡΠ°ΠΉΠ» ΠΎΡΠ΅Π½Ρ Π½Π΅Π²Π΅Π»ΠΈΠΊ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ ΠΏΠΎΠ»Π½ΡΠΌ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²;
β’ diff-ΡΠ°ΠΉΠ» Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΡΠΏΠ΅ΡΡΠ°ΠΌ Π±ΡΡΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΠΎΡΠ΅Π½ΠΈΡΡ ΠΈΡ .
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΠΏΠ°ΡΡ diff/patch ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊ Π»ΡΠ±ΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ, Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ. ΠΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΡΡΠΏΠ΅Ρ ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΌΡ ΡΠ΅ΠΊΡΡΡ.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ diff-ΡΠ°ΠΉΠ» Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ patch, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ GNU ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ diff, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
diff -Naur ΡΡΠ°ΡΡΠΉ_ΡΠ°ΠΉΠ» Π½ΠΎΠ²ΡΠΉ_ΡΠ°ΠΉΠ» > diff_ΡΠ°ΠΉΠ»
Π³Π΄Π΅ ΡΡΠ°ΡΡΠΉ_ΡΠ°ΠΉΠ» ΠΈ Π½ΠΎΠ²ΡΠΉ_ΡΠ°ΠΉΠ» ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌΠΈ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ r ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΠΎΠ±Ρ ΠΎΠ΄ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ².