Та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:
• с - указывает создание нового архива, в отличие от просмотра существующего или внесения в него файлов;
• v - указывает подробный вывод данных с указанием каждого архивируемого файла;
• f - указывает архивирование в файл, а не на магнитную ленту.
Если необходимо архивировать все файлы с расширением . 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,
а
также их параметрах, см. на страницах руководства этих команд.
Содержание раздела