В Linux существует множество консольных утилит для работы с архивами и сжатыми файлами.
Нередко в работе бывают случаи, когда GUI под рукой не оказывается (при работе через ssh) и приходится выкручиваться для того, чтобы прочитать ".tar.gz" или ".zip" архивчик.
команды zip и unzip
zip используется для сжатия и архивирования файлов по одноименному алгоритму.
Через параметр ARCHIVE команда принимает имя архива, в который надо добавить файлы. После этого параметру FILES передается набор архивируемых файлов/каталогов:
zip [OPTIONS] ARCHIVE FILES
$ zip myfiles.zip book.pdf image.png
Команда unzip, наоборот, позволяет распаковать архив и в общем случае имеет следующий формат:
unzip [OPTIONS] ARCHIVE
$ unzip myfiles.zip
команды tar, gzip и gunzip
gzip (GNU zip) - архиватор файлов с расширением ".gz".
Данная команда не умеет упаковывать несколько файлов в один архив и используется для поштучного сжатия. Для каждого переданного экземпляра создается спрессованный ".gz" собрат:
# -k : сохраняет изначальный файл
$ gzip -k file1.txt file2.txt
gunzip - распаковщик архивов ".gz". Команда является эквивалентом для "gzip -d":
$ gunzip file.txt.gz
$ gzip -d file.txt.gz
Для упаковки нескольких файлов, их сначала необходимо архивировать в один через утилиту tar и уже потом сжать результат командой gzip.
tar - это утилита, которая используется для объединения нескольких файлов и директорий в один архив.
Сама по себе команда не сжимает файлы, а просто сохраняет их в один ".tar" файл.
Давайте рассмотрим комбо:
# -c : Создать новый архив
# -f : Указать имя создаваемого архива
$ tar -cf archive.tar file.txt
$ gzip archive.tar
Таким образом, сжатые архивы обычно имеют двойное расширение ".tar.gz" или сокращённое ".tgz".
Для того, чтобы распаковать архив, можно использовать флаг "-x":
$ tar -xf archive.tar
команда zcat
Команда zcat похожа, по сути, на cat и используется для вывода содержимого сжатых файлов формата ".gz" без необходимости их предварительной распаковки:
$ zcat file.txt.gz
Hello world