
В этой статье мы покажем вам, как использовать утилиту Tar для извлечения и создания tar-архивов с помощью практических примеров и подробных объяснений наиболее распространенных параметров Tar.
Что такое Tar?
Команда tarиспользуется для создания архивов tar, путем преобразования группы файлов в архив. Она также имеет возможность извлекать архивы tar, отображать список файлов, включенных в архив, добавлять дополнительные файлы в существующий архив, а также различные другие виды операций.
Tar поддерживает широкий спектр программ сжатия , таких как gzip, bzip2, lzip, lzma, lzop, xzи compress. При создании сжатых tar-архивов принято считать добавление суффикса компрессора к имени файла архива. Например, если архив был сжат с помощью gzip, он должен быть назван archive.tar.gz.
Tar был первоначально разработан для создания архивов при хранения файлов на магнитной ленте, поэтому он имеет свое название « T ape AR chive».
Существуют две версии tar, BSD tar и GNU tar с некоторыми функциональными отличиями. Большинство систем Linux поставляются с предустановленной GNU tar по умолчанию. Если у вас не установлен tar, рекомендуем сначало установить его следую нашей статьи как установить tar.gz в CentOS.
Синтаксис командной строки
Прежде чем перейти к использованию команды tar, давайте начнем с рассмотрения базового синтаксиса.
tar [OPERATION_AND_OPTIONS] [ARCHIVE_NAME] [FILE_NAME(s)]
OPERATION— Разрешается и требуется только один аргумент. Наиболее часто используемые операции:--create(-c) — Создание нового tar-архива.--extract(-x) — Извлечь весь архив или один или несколько файлов из архива.--list(-t) — отобразить список файлов, включенных в архив
OPTIONS— Наиболее часто используемые операции:--verbose(-v) — Показать файлы, обрабатываемые командой tar.--file=archive=name(-f archive-name) — Указывает имя файла архива.
ARCHIVE_NAME— Название архива.FILE_NAME(s)— список имен файлов, разделенных пробелами, которые нужно извлечь. Если не предусмотрено, весь архив будет извлечен.
При выполнении команды tar вы можете использовать длинную или краткую форму операций и параметров tar. Длинные формы более читабельны, а короткие формы — быстрее. Опции длинной формы имеют префикс двойной тире ( --). Параметры короткой формы имеют префикс с одним тире ( -), который можно опустить.
Создание Tar Archive
Используйте оператор -c для создания архива tar. Например, чтобы создать архивный файл с именем archive.tarиз файлов с именем file1, file2, file3 выполните следующую команду:
tar -cf archive.tar file1 file2 file3
Вот эквивалентная команда, использующая параметры длинной формы:
tar --create --file=archive.tar file1 file2 file3
В следующем примере будет создан архив backup.tar из каталога /home/username:
tar -cf backup.tar /home/username
Вы можете создавать архивы из содержимого одного или нескольких каталогов или файлов. По умолчанию каталоги архивируются рекурсивно, если не указан параметр --no-recursion. Используйте параметр -v, если хотите просмотреть файлы, которые обрабатываются.
Создание архива Tar Gz
Gzip — самый популярный алгоритм сжатия tar-файлов. При сжатии архивов tar с gzip имя архива должно заканчиваться либо tar.gzили tgz.
Чтобы создать архив tar.gz из заданных файлов, вы можете использовать следующую команду:
tar -czf archive.tar.gz file1 file2
Опция -zсообщает tar сжать архив, используя алгоритм gzip.
Создание архива Tar Bz2
Другим популярным алгоритмом сжатия tar-файлов является bzip2. При сжатии архивов tar с bzip2 имя архива должно заканчиваться либо tar.bz2 либо tbz.
Когда указана опция -j , tar будет использовать алгоритм bzip2 сжатия архива.
Следующая команда создаст архив tar.bz2 из заданных файлов:
tar -cjf archive.tar.bz2 file1 file2
Листинг архива Tar
Чтобы перечислить содержимое tar-архива, используйте операцию --list( -t).
tar -tf archive.tar
file1 file2 file3
Если вы укажете содержимое архива с помощью параметра --verbose( -v), tar будет печатать больше информации, например, владельца, размера файла, метки времени и т.д.:
tar -tvf archive.tar
-rw-r--r-- linuxize/users 0 2018-09-08 20:15 file1 -rw-r--r-- linuxize/users 0 2018-09-08 20:15 file2 -rw-r--r-- linuxize/users 0 2018-09-08 20:15 file3
Извлечение архива Tar
Для извлечения tar-архива используйте оператор --extract( -x) и укажите имя файла архива:
tar -xf archive.tar
Также обычно добавляется опция -v для печати имен извлеченных файлов.
tar -xvf archive.tar
По умолчанию tar будет извлекать содержимое архива в текущем рабочем каталоге. Используйте --directory( -C) для извлечения архивных файлов в определенном каталоге:
Например, чтобы извлечь содержимое архива в каталог /opt/files, вы можете использовать:
tar -xf archive.tar -C /opt/files
Извлечение архивов Tar Gz и Tar Bz2
При извлечении сжатых архивов, например, tar.gzили tar.bz2 вам не нужно указывать параметр декомпрессии. Команда такая же, как при извлечении архива tar:
tar -xf archive.tar.gz
tar -xf archive.tar.bz2
Извлечение определенных файлов из tar-архива
Чтобы извлечь определенные файлы из архива tar, добавьте список имен файлов, разделенных пробелами, которые будут извлечены после имени архива:
tar -xf archive.tar file1 file2
При извлечении файлов вы должны указать свои точные имена, включая путь, как напечатано --list( -t).
Извлечение одной или нескольких каталогов из архива аналогично извлечению файлов:
tar -xf archive.tar dir1 dir2
Если вы попытаетесь извлечь файл, который не существует, появится сообщение об ошибке, подобное приведенному ниже:
tar -xf archive.tar README
tar: README: Not found in archive tar: Exiting with failure status due to previous errors
Извлечение файлов из архива Tar с помощью подстановочного знака
Чтобы извлечь файлы из архива на основе шаблона подстановочных знаков, используйте переключатель --wildcards и укажите шаблон, чтобы предотвратить интерпретацию оболочки.
Например, чтобы извлечь файлы, имена которых заканчиваются на .js(файлы Javascript), вы можете использовать:
tar -xf archive.tar --wildcards '*.js'
Добавление файлов в существующий архив
Чтобы добавить файлы или каталоги в существующий архив tar, используйте операцию --append( -r).
Например, чтобы добавить файл с именем newfile в archive.tar, вы можете использовать:
tar -rvf archive.tar newfile
Удаление файлов из tar-архива
Используйте операцию --delete для удаления файлов из архива.
Например, чтобы удалить файл с именем file1 из archive.tar, вы можете использовать:
tar --delete -f archive.tar file1
Вывод
К настоящему времени у вас должно быть хорошее понимание того, как создавать и извлекать архивы tar.
Редактор: AndreyEx
Поделиться в соц. сетях: