Таr и gzip
Большинство пользователей
других операционных систем, в том числе Windows 98 и Mac OS, знакомы со сжатыми
архивами. Сжатый архив - это единый файл, содержащий один или несколько файлов
в сжатой форме.
Сжатые архивы часто используются для распространения программного обеспечения
через Internet. В Linux есть команда unzip для доступа к архивным ZIP-файлам,
но в мире Unix большее распространение получили архивы TAR. Эти архивы после заполнения
сжимаются программой сжатия одиночных файлов gzip.
Tar
Первоначально программа
tar предназначалась для создания резервных копий системы на магнитных лентах
(tar - сокращение от tape archive, что означает архив на магнитной ленте).
В настоящее время эта программа широко применяется для подготовки программного
обеспечения к распространению.
Формат команды создания архива:
$ tar cvf tar-file-патв
file-list
По этой команде создается архивный файл tar-file-name (как правило, с расширением
. tar), в который записываются все файлы, указанные в списке file-list, составленном
в соответствии с правилами, рассмотренными в гл. 16. Обратите внимание: файлы,
вносимые в архив, не переносятся, а копируются, поэтому нет опасности их случайного
удаления.
Обратите также внимание на параметры, следующие непосредственно за командой. В
приведенном примере это cvf. Каждый из этих параметров определяет отдельные аспекты
поведения команды tar:
Если необходимо архивировать
все файлы с расширением . txt в текущем каталоге в архивный файл text. tar, можно
воспользоваться командой:
$ tar cvf text.tar *.txt
ab.txt
pop.txt
Обратите внимание
на перечисление файлов, копируемых в архив.
Иногда ipeGyeiUM копирован, в архив каталог. К счастью, каталог, указанный в списке
файлов команды tar, копируется в архив вместе со всеми содержащимися в нем файлами
и подкаталогами. Следовательно, для копирования всего содержимого, например, каталога
vnc в архивный файл vnc. tar можно воспользоваться командой
$ tar cvf vnc.tar vnc
Полностью, это будет иметь следующий вид.
$ tar cvf vnc.tar vnc
vnc/
vnc/LICENSE.TXT
vnc/README
vnc/README. vnc server
vnc/Xvnc
vnc/classes/
vnc/classes/DesCipner.class
vnc/classes/animatedMemorylmageSource.class
vnc/classes/authenticationPanel.class
vnc/classes/clipboardFrame.class
vnc/classes/optionsFrame.class
vnc/classes/rfbProto.class
vnc/classes/vncCanvas.class
vnc/classes/vncviewer.class
vnc/classes/vncviewer. jar
vnc/vncpasswd vnc/vncserver vnc/vncviewer
Обратите
внимание, что в первой ответной строке команды указывается создание каталога vnc
в архиве, после чего происходит копирование файлов в этот каталог.
Существующий архив,
как правило, просматривают или извлекают из него файлы. Для, просмотра содержимого
архива параметр с заменяется параметром t.
$ tar tvf vnc.tar
drwxr-xr-x root/root 0 1998-05-16 23:55 vnc/
-rw-r—r—.root/root 18000 1998-01-23 16:52 vnc/LICENCE.TXT
-rw-r—r— root/root
6142 1998-01-23 16:53 vnc/REAEME
-r—r—r— root/root 601 1998-01-23 16:28 vnc/README.vncserver
-r-xr-xr-x root/root
1286834 1998-01-23 13:00 vnc/Xvnc
drwxr-sr-x root/root 0 1998-01-23 16:24 vnc/classes/
-r—r—r— root/root 7143 1998-01-23 16124 vnc/classes/DesCipher.class
-r— r
—r— root/root 1329 1998-01-23 16:24 vnc/classes/
animatedMemorylmageSource. class
-r—r—r— root/root 2068 1998-01-23 16:24 vnc/classes/
^authenticationPanel. class
-r—r—r— root/root 1761 1998-01-23 16:24 vnc/classes/clipboardFrame.class
-r—r—r—
root/root 3210 1998-01-23 16:24 vnc/classes/optionsFrame.class
-r—r—r— root/root
8309 1998-01-23 16:24 vnc/classes/rfbProto.class
-r—r—r— root/root 7092 1998-01-23 16:24 vnc/classes/vncCanvas.class
-r—r—r— root/root
7100 1998-01-23 16:24 vnc/classes/vncviewer.class
-Г—r—r— root/root 20564 1998-01-23 16:24 vnc/classes/vncviewer.jar
-r-xr-xr-x
root/root 11433 1998-01-23 13:00 vnc/vncpasswd
-r-xr-xr-x root/root 10795 1998-05-17 00:17 vnc/vncserver
-r-xr-xr-x root/root
49685 1998-01-23 13:08-vnc/vncviewer
Как видим,
список файлов выводится в подробной форме: как при выводе содержимого каталога
командой Is' -1.
Чтобы извлечь содержимое архива в текущий каталог, замените параметр с параметром
х.
$ tar xvf vnc.tar
vnc/
vnc/LICENSE.TXT vnc/README vnc/README.vncserver vnc/Xvnc
vnc/classes/
vnc/classes/DesCipher.class vnc/classes/animatedMemorylmageSource.class
vnc/classes/authenticationPanel.class vnc/classes/clipboardFrame.class
vnc/classes/optionsFrame.class vnc/classes/rfbProto.class vnc/classes/vncCanvas.class
vnc/classes/vncviewer.class
vnc/classes/vncviewer.jar vnc/vncpasswd vnc/vncserver vnc/vncviewer
Gzip
В приведенных примерах применения команды tar файлы архивируются, но не сжимаются.
В Linux для сжатия файлов используется команда gzip.
В отличие от программы ZIP из Windows, которая может сразу создать архив, состоящий
из множества сжатых файлов, команда gzip только сжимает отдельные файлы.
Если у вас есть очень большой файл test .pdf, использовать который в ближайшее время не планируется, то для экономии места на диске его можно сжать следующей командой.
$ gzip test.pdf
По этой команде файл test. pdf сжимается и к его имени добавляется расширение
. gz, так что он превращается в файл test .pdf . gz. До сжатия файл имел объем
110 778 байт:
-rw-r--r-- I root root 110778 Jun 5 16:54 test.pdf
После
сжатия его объем уменьшился до 83 729 байт.
-rw-r--r-- I root root 83729 Jun 5 16:54 test.pdf.gz
Как и
в большинстве команд, в команде gzip для указания нескольких файлов можно использовать
подстановочные символы. Например, по команде
$ gzip *
сжимаются
все файлы в текущем каталоге (но не в его подкаталогах).
Восстановление сжатых
файлов
Для восстановления файла, сжатого командой gzip, можно воспользоваться этой же
командой с параметром -d.
$ gzip -d test.pdf.gz
Файл восстанавливается в прежнем виде, из его имени удаляется расширение . gz.
Можно
обойтись,без параметра -d, если для восстановления сжатого файла ввести команду:
$ gunzip test.pdf.gz
Объединение команд gzip и tar
Поскольку ранние версии команды tar выполняли архивирование без сжатия, она обычно
применялась в сочетании с командой gzip, как в следующем примере:
$ tar cvf text.tar *.txt
ab.txt
pop.txt
$ gzip text.tar
где создается
сжатый архив с именем text. tar. gz.
Доступ в этот архив возможен только после восстановления от сжатия:
$. gunzip text.tar.gz
$ tar tvf text.tar
-rw-r--r-- root/root 48 1998-06-05 16:13 ab.txt
-rw-r--r-- root/root 6 1998-06-05 16:13 pop.txt
Более
поздние версии команды tar, в том числе входящие в современные дистрибутивы, предусматривают
непосредственное создание сжатых архивов и прямой доступ к ним. Чтобы создать
сжатый архив, команду tar надо ввести с параметром z:
$ tar czvf vnc.tar.gz
vnc
vnc/
vnc/LICENSE.TXT
vnc/README
vnc/README.vncserver
vnc/Xvnc
vnc/classes/
vnc/classes/DesCipher.class
vnc/classes/animatedMemorylmageSouree.class
vnc/classes/authenticationPanel.class
vnc/classes/clipboardFrame.class
vnc/classes/optionsFrame.class vnc/classes/rfbProto.class vnc/classes/vncCanvas.class
vnc/classes/vncviewer.class
vnc/classes/vncviewer.jar vnc/vncpasswd vnc/vncserver vnc/vncvi ewer
Для просмотра
полученного архива можно воспользоваться командой'
$ tar tzvf text.tar.gz
-rw-r—r— root/root 48 1998-06-05 16:13 ab.txt
-rw-r—r— root/root 6 1998-06-05 16:13 pop.txt
а для
извлечения файлов - командой $ tar xzvf text.tar.gz
ab.txt pop.txt
Примечание
Подробно о командах tar и gzip, а также их параметрах, см. на страницах руководства этих команд.
В этой главе мы займемся освоением
среды командной строки Unix. Среда командной строки -основа Linux. Как вы уже
убедились, X Windows обеспечивает простой и быстрый доступ к графическим программам,
существенно повышающим эффективность работы пользователя. Но часто при этом утранивается
возможность полного управления системой Linux. Это становится очевидным в самом
начале изучения системы Команд.
В главе рассмотрены некоторые
часто употребляемые команды: Is, find и grep. Поскольку это команды большинства
дистрибутивов, пользователи Unix без труда определят их назначение и возможности,
предоставляемые опытному пользователю.
Примечание
В этой главе изучается командная строка Linux. Есть два способа установить режим командной строки: войти в одну из виртуальных консолей Linux или запустить в X Windows окно xterm, GNOME terminal либо KDE's Konsole.
| фотоэффект ; Коническая винтовая линия Ethernet Локальные сети что такое драйвер Первый способ задания функции: табличный Степенная функция Обратные тригонометрические функции Определение непрерывности функции Оценки ошибок в формулах приближённого дифференцирования Производные функции, заданной параметрически Примеры исследования функций и построения графиков Приближённое нахождение корней уравнений и точек экстремума Тригонометрическая форма комплексного числа Изменить порядок интегрирования Вычислить двойной интеграл Вычисление тройных интегралов Сферические координаты Два основных метода интегрирования Замена переменных в двойном интеграле Дифференцирование интегралов, зависящих от параметра |