Основы программирования в Linux - Страница 178
На самом деле это набор команд редактора для превращения одного файла в другой. Предположим, что у вас есть файл file1.c и файл diffs. Вы можете обновить свой файл с помощью команды
patch$ patch file1.c diffsHmm... Looks like a normal diff to me...Patching file file1.c using Plan A...Hunk #1 succeeded at 1.Hunk #2 succeeded at 4.Hunk #3 succeeded at 7.done$Команда
patchУ команды
patchpatch-R$ patch -R file1.c diffsHmm... Looks like a normal diff to me...Patching file file1.c using Plan A...Hunk #1 succeeded at 1.Hunk #2 succeeded at 4.Hunk #3 succeeded at 6.done$Файл file1.с возвращен в свое исходное состояние.
У команды
patchpatchКогда вы работаете с корректировками программного обеспечения, полезно применять опцию
diff -сpatchЕсли вы нашли и исправили ошибку в программе, легче, точнее и вежливее отправить автору исправленный файл, а не просто описание исправления.
Другие утилиты распространения
Программы Linux и исходный код обычно распространяются в виде файлов с именами, в которые включен номер версии, и расширениями tar.gz или tgz. Это сжатые программой
gziptargzip$ tar cvf myapp-1.0.tar main.c 2.c 3.c *.h myapp.1 Makefile5main.c2.c3.ca.hb.hc.hmyapp.1Makefile5$Теперь у вас есть файл TAR:
$ ls -l *.tar-rw-r--r-- 1 neil users 10240 2007-07-09 11:23 myapp-1.0.tar$Сделать его меньше можно с помощью программы сжатия
gzip$ gzip myapp-1.0.tar $ ls -l *.gz-rw-r--r-- 1 neil users 1648 2007-07-09 11:23 myapp-1.0.tar.gz$Как видите, в результате впечатляющее уменьшение размера. Файл tar.gz можно в дальнейшем переименовать, оставив просто расширение tgz.
$ mv myapp-1.0.tar.gz myapp_v1.tgzПрактика задания имен, заканчивающихся точкой и тремя символами, — уступка программному обеспечению, работающему в ОС Windows, которое в отличие от программ для ОС Linux и UNIX сильно зависит от наличия корректного расширения файла. Для того чтобы получить свои файлы обратно, удалите сжатие и опять извлеките их из файла, полученного с помощью
tar$ mv myapp_v1.tgz myapp-1.0.tar.gz$ gzip -d myapp-1.0.tar.gz$ tar xvf myapp-1.0.tarmain.с2.c3.ca.hb.hc.hmyapp.1Makefile5$С версией GNU программы tar все еще проще — вы можете создать сжатый архив за один шаг:
$ tar zcvf myapp_v1.tgz main.c 2.c 3.c *.h myapp.1 Makefile5main.c2.c3.ca.hb.hc.hmyapp.1Makefile5$Также легко вы можете развернуть файл:
$ tar zxvf myapp_v1.tgzmain.c2.с3. сa. hb. h c.hmyapp.1Makefile5$Если хотите увидеть содержимое архива, не извлекая его, следует вызвать программу
tartar ztvfВ предыдущих примерах мы применяли
tartar [опции] [список_файлов]