This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
утилиты_diff_и_patch [2009/03/02 12:54] val created |
утилиты_diff_и_patch [2016/04/07 09:25] (current) val [Утилиты diff и patch] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Утилиты diff и patch ====== | ====== Утилиты diff и patch ====== | ||
| - | Сравнение каталогов | + | * [[https://youtu.be/vqPaHyisBB0|Видео: Утилиты diff и patch]] |
| + | * [[http://ru.wikipedia.org/wiki/Patch_(UNIX)|patch (UNIX)]] | ||
| + | |||
| + | ===== Сравнение каталогов ===== | ||
| <code> | <code> | ||
| - | $ diff каталог1 каталог2 | + | $ diff /usr/share /usr/local/share |
| </code> | </code> | ||
| - | Сравнение двоичных файлов | + | |
| + | ===== Сравнение двоичных файлов ===== | ||
| <code> | <code> | ||
| - | $ diff /bin/ls /usr/bin/lsvfs | + | $ diff /usr/bin/test /usr/bin/[ |
| - | Binary files /bin/ls and /usr/bin/lsvfs differ | + | или |
| + | $ diff /bin/test /bin/[ | ||
| + | |||
| + | $ ls -i /usr/bin/test /usr/bin/[ | ||
| + | или | ||
| + | $ ls -i /bin/test /bin/[ | ||
| </code> | </code> | ||
| - | Сравнение текстовых файлов | + | ===== Сравнение текстовых файлов ===== |
| <code> | <code> | ||
| $ cat hello.c | $ cat hello.c | ||
| + | </code><code> | ||
| #include <stdio.h> | #include <stdio.h> | ||
| main () { | main () { | ||
| printf("Hello World\n"); | printf("Hello World\n"); | ||
| } | } | ||
| + | </code><code> | ||
| $ cp hello.c hello.c.old | $ cp hello.c hello.c.old | ||
| - | $ ee hello.c | + | |
| - | … | + | |
| $ cat hello.c | $ cat hello.c | ||
| + | </code><code> | ||
| #include <stdio.h> | #include <stdio.h> | ||
| main () { | main () { | ||
| printf("Hello World Again\n"); | printf("Hello World Again\n"); | ||
| } | } | ||
| - | + | </code><code> | |
| - | $ diff hello.c.old hello.c | + | $ diff hello.c.old hello.c |
| + | </code><code> | ||
| 3c3 | 3c3 | ||
| < printf("Hello World\n"); | < printf("Hello World\n"); | ||
| --- | --- | ||
| > printf("Hello World Again\n"); | > printf("Hello World Again\n"); | ||
| + | </code><code> | ||
| + | diff -e hello.c.old hello.c | ||
| + | </code><code> | ||
| + | 3c | ||
| + | printf("Hello World Again\n"); | ||
| + | . | ||
| + | </code><code> | ||
| + | $ diff hello.c.old hello.c > hello.patch | ||
| - | $ diff hello.c.old hello.c > patch.txt | + | $ mv hello.c.old hello.c |
| - | </code> | + | |
| - | Копируем patch.txt на машину со старым hello.c | + | $ patch hello.c hello.patch |
| - | <code> | + | |
| - | $ patch hello.c patch.txt | + | |
| - | Hmm... Looks like a normal diff to me... | + | |
| - | Patching file wares.txt using Plan A... | + | |
| - | Hunk #1 succeeded at 3. | + | |
| - | done | + | |
| $ cat hello.c | $ cat hello.c | ||
| + | </code><code> | ||
| #include <stdio.h> | #include <stdio.h> | ||
| main () { | main () { | ||