Архиватор tar - упаковка и распаковка файлов в Bash
С целью создания и распаковки архивов в GNU/Linux часто используют программу tar. Она архивирует файлы без сжатия. Однако может сама обращаться к утилите, предназначенной для этого, поэтому выполнять отдельно команду сжатия/разжатия не требуется. Утилитой-компрессором может выступать gzip или любая другая из множества.
Архивы без сжатия имеют расширение .tar, со сжатием – в случае gzip расширение будет .tar.gzip или .tar.gz. При распаковке программа tar
по расширению файла-архива поймет, к какой утилите следует обратиться. В случае упаковки, чтобы tar
применил программу-компрессор, следует указывать специальную опцию.
Если сжатие выполняется, сначала происходит упаковка файлов в один архив, и только после этого применяется сжатие уже к единственному файлу-архиву. Поэтому расширение, например, .gz находится в конце, а .tar – перед ним.
После имени команды tar
обязательно записываются ключи, которые сообщают, что мы хотим сделать – упаковать, распаковать или выполнить другое действие. Затем указывается имя архива. Если выполняется процесс упаковки, то файлы и папки, которые надо поместить в архив, перечисляются после имени создаваемого архива.

Имена/адреса файлов и каталогов можно задавать, в том числе, с помощью шаблона.

В примере ключ -c
указывает, что мы создаем архив. Ключ -f
необходим, так как упаковка будет выполняться в файл, а не поток вывода. Этот ключ используется почти всегда. В архив упаковываются два объекта – каталог ampBash и файл linux2019.txt.
Ключ -t
позволяет вывести на экран список содержимого архива. Если же мы хотим видеть список архивируемых файлов в процессе самой упаковки, в комбинации с ключом -c
используется -v
. Получается -cvf
.
Для распаковки архива требуется ключ -x
:

В примере распаковка происходит в текущий каталог. Если надо распаковать в другой, то перед адресом каталога-назначения указывается опции -C
. Например: tar -xf archive -C folder/
.
Если мы хотим добавить файлы в существующий архив, используется ключ -r
:

В случае сжатия необходим дополнительный ключ. Если это -a
, то утилита для сжатия определяется по расширению. Хотя есть ключи, которые позволяют указывать конкретные компрессоры.

На скрине сравниваются размеры сжатого архива и обычного.