ћерион Ќетворкс

6 минут чтени€

Ќазвание tar архива образовано от сочетани€ Tape ARchive, так как было разработано дл€ записи последовательных данных на ленточные устройства. “акже иногда встречаетс€ название tarball.

ѕо умолчанию tar архивирует файлы только без сжати€, но с использованием некоторых частей. ћы можем использовать различные методы сжати€, чтобы на выходе получить архив меньшего размера. ”тилита tar обычно включаетс€ в большинство дистрибутивов Linux по умолчанию, а сам формат поддерживаетс€ другими операционными системами, включа€ Windows и macOS, с помощью различных инструментов и утилит.

¬ этой статье мы рассмотрим некоторые общие примеры использовани€ команды tar и поддерживаемые флаги.


1. —оздание tar архива

ƒл€ создани€ обычного архива без сжати€ достаточно ввести команду ниже:

$ tar cvf <tar-file-name> <files-to-archive>

«десь флаги c обозначает создание, v обозначает подробный вывод и f обозначает им€ файла архива tar. ѕо соглашению укажите им€ файла tar с расширением .tar. јрхивируемые файлы могут быть определены с помощью подстановочных знаков или же можно указать один файл или несколько файлов/путей.

¬ качестве примера можно привести три файла в каталоге:

—оздание tar архива

—оздать архив, содержащий все три файла, можно следующим образом:

—оздание tar архива

“акже можно указать только конкретные файлы дл€ архивировани€, например:

—оздание tar архива

2. —оздание сжатого архива (GZ)

tar позвол€ет не только архивировать файлы, но и сжимать их дл€ экономии места. ќдним из попул€рных форматов сжати€ €вл€етс€ gunzip, обычно представленный расширением .gz после .tar или как tgz. ћы можем использовать флаг z, чтобы указать, что файлы должны быть сжаты с помощью gunzip. ¬от пример:

—оздание сжатого архива

ћожно заметить, что размер архивных файлов существенно отличаетс€, хот€ оба содержат одни и те же три файла. Ёто св€зано с использованием сжати€ с использованием флага z.


3. —оздание сжатого архива (BZ)

tar поддерживает несколько других форматов сжати€. ќдним из них €вл€етс€ bz2 или bzip2, который представлен расширением tar.bz2 или иногда как tbz2. Ёто может дать вам меньший размер архива, но, в свою очередь, потребл€ет больше ÷ѕ, так что процесс сжати€/декомпрессии может быть медленнее, чем gz архив. ƒл€ создани€ bz архива используетс€ флаг j:

—оздание сжатого архива

4. –аспаковка всех файлов

јрхив tar (сжатый или несжатый) можно извлечь с помощью опции x. Ќиже приведены примеры, по€сн€ющие его использование:

–аспаковка всех файлов

Ёта команда также работает дл€ сжатого архива формата gz:

–аспаковка всех файлов

» даже дл€ архива со сжатием bz2:

–аспаковка всех файлов

5. ѕросмотр содержани€ архива

„тобы перечислить содержимое архива tar, можно использовать флаг t, как показано ниже:

ѕросмотр содержани€ архива

6. –аспаковка конкретных файлов

»з архива tar, tar.gz или tar.bz2 можно извлечь как все файлы, так и один конкретный файл, указав им€ файла:

–аспаковка конкретных файлов

јналогично, можно указать несколько имен файлов, разделенных пробелом, чтобы извлечь их вместе за один переход.

–аспаковка конкретных файлов

7. –аспаковка с помощью маски

„тобы извлечь один или несколько файлов с помощью шаблона PATTERN, используйте флаг --wildcards:

–аспаковка с помощью маски

8. ƒобавление файлов в архив

¬ существующий несжатый архив можно добавл€ть новые файлы использу€ флаг r или --append с новыми именами файлов или шаблоном подстановочных символов (помните, что это работает только с несжатыми TAR-файлами, а не со сжатыми форматами tar.gz или tar.bz2):

ƒобавление файлов в архив

ћожно увидеть, что содержимое списка archive.tar показывает два только что добавленных файла.


9. ”даление файлов из архива

”даление определенных файлов из архива tar возможно с помощью флага --delete, как показано ниже (сравните список tar до и после удалени€ файлов):

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

ќп€ть же это работает только дл€ несжатых архивов и завершитс€ неудачей дл€ сжатых форматов архива.


10. —оздание архива с проверкой

ѕри создании несжатых архивных файлов можно проверить содержимое архива, использу€ флаг W как показано ниже:

—оздание архива с проверкой

Ётот флаг нельз€ использовать с флагами сжати€, хот€ можно сжать созданный файл tar позже с помощью gzip или других инструментов.


11. –аспаковка архива в папку

≈сли вы хотите извлечь содержимое тарбола в определенную папку вместо текущего каталога, используйте флаг -C с указанием пути к каталогу, как показано ниже:

–аспаковка архива в папку

12. »спользование флага Цdiff

ћожно использовать флаг --diff или d дл€ поиска любых изменений между файлами в архиве tar и файлами в файловой системе. ¬от пример, который запускает diff один раз, когда файл внутри архива и снаружи был один и тот же. ≈сли запустить команду снова после обновлени€ файла, то можно увидеть разницу в выходных данных.

»спользование флага Цdiff

13. »сключение файлов

»сключение определенных файлов может быть об€зательным при создании архивов tar. Ётого можно достичь с помощью флага --exclude.

»сключение файлов

 ак можно заметить из приведенных выше выходных данных, можно задать флаг --exclude несколько раз, чтобы указать несколько имен файлов или шаблонов св€зыва€ их логическим AND. —ледует отметить, что из шести файлов в директории в приведенном выше примере только два файла удовлетвор€ли условию, которое должно быть включено в archive.tar.gz.


14. ѕросмотр размера содержимого архива

–азмер содержимого сжатого архива tar можно получить с помощью следующей команды:

ѕросмотр размера содержимого архива

јналогично дл€ архива bz2:

ѕросмотр размера содержимого архива

15. јрхиваци€ с сохранением разрешений

ѕо умолчанию команда tar сохран€ет разрешение архивированных файлов и каталогов, хот€ можно €вно указать его с помощью флага -p или --preserve-permissions, как показано ниже.

јрхиваци€ с сохранением разрешений

«аключение

tar - полезна€ утилита в системах Unix/Linux в течение долгого времени и в первую очередь использовалась в задачах архивировани€ и резервного копировани€. — течением времени утилита развивалась и приобретала многие опции. ќн может использоватьс€ дл€ простых и сложных задач, если вы знаете, какие функции он предлагает. ¬ этой статье описаны некоторые основные операции, которые можно выполнить с помощью команды tar, и показано, как она может помочь в выполнении повседневных задач системного администрировани€.

ƒл€ получени€ дополнительных сведений обратитесь воспользуйтесь встроенным руководством Linux с помощью команда man tar или используйте команду tar --help или tar --usage.


—кидки 50% в Merion Academy

¬ыбрать курс