Прежде чем углубляться в менеджеры пакетов, важно понять архивирование и сжатие файлов. Когда вы загружаете программное обеспечение из Интернета, вы часто обнаруживаете его упакованным в архивные и сжатые форматы. Этот урок посвящен двум основным утилитам для этой цели: tar и gzip.
Понимание архивирования против сжатия
Важно различать архивирование и сжатие. Архивирование — это процесс объединения нескольких файлов и каталогов в один файл, известный как архив. Это упрощает управление группой файлов и их передачу. Сжатие, с другой стороны, — это процесс уменьшения размера файла для экономии места на диске и ускорения передачи. Утилита tar используется для архивирования, а gzip — для сжатия. Часто вы увидите, что gzip и tar используются вместе.
Сжатие отдельных файлов с помощью gzip
Программа gzip используется для сжатия отдельных файлов в Linux. Когда вы сжимаете файл с помощью gzip, он заменяется файлом с расширением .gz.
Чтобы сжать файл:
gzip mycoolfile
Это создаст mycoolfile.gz и удалит оригинал. Чтобы распаковать файл, вы можете использовать gunzip:
gunzip mycoolfile.gz
Создание архивов с помощью tar
Хотя gzip отлично подходит для сжатия, он не может объединять несколько файлов в один архив. Для этого мы используем утилиту tar (Tape Archive). Файл, созданный с помощью tar, часто называют «тарболом» (tarball) и имеет расширение .tar.
Чтобы создать новый архив, содержащий несколько файлов:
tar cvf myarchive.tar file1 file2 directory1
Разберем опции:
c: create (создать) новый архив.v: verbose (подробный) режим, который перечисляет файлы по мере их обработки.f: file (файл), указывающий, что следующий аргумент — это имя архивного файла.
Мощь tar и gzip вместе
Настоящая мощь проявляется при совместном использовании tar и gzip. Вы можете сначала создать архив .tar, а затем сжать его с помощью gzip, в результате чего получится файл .tar.gz. Однако tar предоставляет удобный способ обработки tar compression (архивирования tar) за один шаг с помощью опции z. Этот процесс иногда называют созданием архива gzip tar.
Чтобы создать сжатый архив, что является распространенным способом compress tar gz файлов:
tar czvf myarchive.tar.gz file1 file2 directory1
Здесь опция z указывает tar использовать gzip для сжатия.
Извлечение архивов tar и gzip
Чтобы извлечь файлы из архива, используйте опцию x.
Чтобы извлечь простой архив .tar:
tar xvf myarchive.tar
Чтобы распаковать и извлечь архив .tar.gz одной командой, просто снова добавьте опцию z:
tar xzvf myarchive.tar.gz
Рассмотрим опции извлечения:
x: extract (извлечь) файлы из архива.z: Decompress the archive usingg**z**ip(Распаковать архив с помощьюgzip).v: verbose (подробный) режим, перечисляющий файлы по мере их извлечения.f: file (файл), указывающий архивный файл для извлечения.
A helpful mnemonic for this is: eXtract Zee Very Fast! (Полезный мнемонический прием для этого: Извлечь Зед Очень Быстро!)
tar — это настолько важная, но часто забываемая команда. Соответствующий xkcd: https://xkcd.com/1168
Другие утилиты
Хотя tar и gzip чрезвычайно распространены, в вашем путешествии по Linux вы столкнетесь с другими форматами архивирования и сжатия. К ним относятся bzip2 (который создает файлы .bz2 и использует флаг j в tar), xz (создает файлы .xz с флагом J) и знакомые утилиты zip/unzip. У каждого свой набор команд и коэффициенты сжатия, но основные концепции остаются прежними.