Tar является самой распространенной программой для архивирования в мире unix. Название tar происходит от английского tape archive, что можно перевести как архив ленты. Оно сохранилось со времен использования магнитных лент в качестве хранилищ информации. Суть архивирования – создание одного файла из нескольких или из целых директорий. К файлу-архиву для уменьшения размера часто применяется сжатие. Для сжатия используются такие программы, как gzip, bzip2, 7z и другие.
Для создания простого архива служит следующая команда:
1 | tar cvf archive_name.tar dirname/ |
Где:
с – обозначает создание архива;
v – отобразить список обрабатываемых файлов;
f – ожидать имя архива, указываемое после (archive_name.tar – в нашем случае)
dirname – имя директории которую мы архивируем.
Распаковка *.tar файла:
1 | tar xvf archive_name.tar |
x – директива на распаковку архива.
Создание архива со сжатием:
1 | tar cvzf archive_name.tar.gz dirname/ |
Ключ z – указание на то, что архив сжат.
Распаковка сжатого архива:
1 | tar xzvf archive_name.tar.gz |
Просмотреть содержимое архива можно командами;
для несжатого:
1 | tar tvf archive_name.tar |
для сжатого:
1 | tar tvfz archive_name.tar.gz |
Извлечь нужный файл из архива можно командой:
1 | tar xvf archive_file.tar /path/to/file |
или, для сжатого архива добавим ключ z:
1 | tar xvfz archive_file.tar.gz /path/to/file |
где /path/to/file – путь к файлу в архиве, полученный из предыдущей команды.
Извлеченный файл появится по этому пути относительно текущей директории.
Для извлечения нескольких файлов можно использовать следующее:
1 | tar xvf archive_file.tar --wildcards '*.py' |
Будут извлечены файлы, подходящие по регулярному выражению. В примере это файлы с python-расширением.
Получить директорию из архива:
1 | tar xvf archive_file.tar /path/to/dir/ |
и для сжатого:
1 | tar xvfz archive_file.tar.gz /path/to/dir/ |
Директория будет извлечена с поддиректориями.
Добавить файл в существующий архив
1 | tar rvf archive_name.tar newfile |
Добавить директорию в существующий архив
1 | tar rvf archive_name.tar newdir/ |
Следует заметить, что добавить что в уже сжатый архив не получится.