Как создавать и извлекать архивы с помощью команды Tar в Linux

12 set 2022 4 min di lettura
Как создавать и извлекать архивы с помощью команды Tar в Linux
Indice dei contenuti

Введение

Команда tar используется для создания tar-архивов путем преобразования группы файлов в архив. Он также имеет возможность извлекать tar-архивы, просматривать список файлов, включенных в архив, добавлять дополнительные файлы в существующий архив, а также выполнять различные другие операции.

Изначально Tar был разработан для создания архивных файловых архивов на магнитной ленте, поэтому он и получил свое название Tape ARchive.

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

Синтаксис команды Tar

Есть две версии tar, tar BSD и tar GNU с некоторыми функциональными различиями между ними. Большинство систем Linux поставляются с предустановленной по умолчанию GNU tar.

Общий синтаксис команды 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

Tar поддерживает широкий спектр программ сжатия, таких как gzip, bzip2, lzip, lzma, lzop, xz и compress. При создании сжатых tar-архивов принято добавлять суффикс компрессора к имени файла архива. Например, если архив был gzip с помощью gzip, он должен называться archive.tar.gz.

Чтобы создать tar-архив, используйте параметр -c, за которым следует параметр -f и имя архива.

Например, чтобы создать архив с именем archive.tar, состоящий из файлов с именами file1, file2, file3, вы должны выполнить следующую команду:

tar -cf archive.tar file1 file2 file3

Вот эквивалентная команда, использующая параметры длинного формата:

tar --create --file=archive.tar file1 file2 file3

Архивы могут быть созданы из содержимого одного или нескольких каталогов или файлов. По умолчанию каталоги рекурсивно архивируются, если не указан параметр --no-recursion.

В следующем примере будет создан архив с именем user_backup.tar в каталоге /home/user:

tar -cf backup.tar /home/user

Используйте параметр -v, если вы хотите увидеть обрабатываемые файлы.

Создание архива Tar Gz

Gzip — самый популярный алгоритм сжатия tar-файлов. При сжатии архивов tar с помощью gzip имя архива должно заканчиваться на tar.gz или tgz.

Опция -z указывает tar сжимать архив с использованием алгоритма gzip по мере его создания. Например, чтобы создать архив tar.gz из определенных файлов, используйте следующую команду:

tar -czf archive.tar.gz file1 file2

Создание архива Tar Bz2

Другой популярный алгоритм сжатия tar-файлов — bzip2. При сжатии tar-архивов с помощью bzip2 имя архива должно заканчиваться на tar.bz2 или tbz.

Когда указана опция -j, tar будет использовать алгоритм bzip2 для сжатия архива. Следующая команда создаст архив tar.bz2 из указанных файлов:

tar -cjf archive.tar.bz2 file1 file2

Список tar-архивов

При использовании с параметром --list ( -t ) команда tar будет отображать содержимое архива tar без его извлечения. Команда ниже выведет список содержимого файла archive.tar:

tar -tf archive.tar

На выходе будут перечислены имена всех файлов в архиве:

file1
 file2
 file3

Чтобы получить дополнительную информацию, такую как владелец файла, размер файла, временная метка, используйте параметр --verbose ( -v ):

tar -tvf archive.tar
-rw-r--r-- noviello/users 0 2018-09-08 01:19 file1
 -rw-r--r-- noviello/users 0 2018-09-08 01:19 file2
 -rw-r--r-- noviello/users 0 2018-09-08 01:19 file3

Извлечение архива Tar

Большинство файлов, хранящихся в Linux, заархивированы и сжаты в формате tar или tar.gz. Важно знать, как извлечь эти файлы из командной строки.

Чтобы извлечь tar-архив, используйте параметр --extract ( -x ), за которым следует имя архива:

tar -xf archive.tar

Также принято добавлять параметр -v для печати имен файлов, которые необходимо извлечь.

tar -xvf archive.tar

Извлеките архив 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-архив

Чтобы добавить файлы или каталоги в существующий tar-архив, используйте --append ( -r ).

Например, чтобы добавить файл с именем newfile в archive.tar, выполните:

tar -rvf archive.tar newfile

Удаление файлов из архива Tar

Используйте операцию --delete для удаления файлов из архива.

В следующем примере показано, как удалить файл file1 из archive.tar:

tar --delete -f archive.tar file1

Вывод

Чаще всего команда tar используется для создания и извлечения архива tar. При извлечении архива используйте команду tar -xf, за которой следует имя архива, а для создания нового используйте tar -czf и имя архива.

Дополнительные сведения о команде tar см. на странице документации Gnu tar.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.