Как создать архив на линукс

Archive, Compress, and Extract Files in Linux Using the Command Line

Estamos traduciendo nuestros guías y tutoriales al Español. Es posible que usted esté viendo una traducción generada automáticamente. Estamos trabajando con traductores profesionales para verificar las traducciones de nuestro sitio web. Este proyecto es un trabajo en curso.

tar and gzip provide a standard interface to create archives and to compress files in Linux. These utilities take a large number of files, save them together in an archive, and compresses the archive to save space. tar does not compress files by itself. Used in conjunction with gzip , an archived file can be compressed to reduce disk space. The resulting archived file has the file extension, tar.gz and is sometimes called a “tarball”.

Archive a Directory

mkdir testdir && touch testdir/example.txt 
tar -cvf testdir.tar testdir/ 

Compression with gzip

total 9kB drwxrwxr-x 2 linode linode 5kB Jan 30 13:13 testdir -rw-rw-r-- 1 linode linode 1kB Jan 30 13:29 testdir.tar.gz

Extract a Tarball

The flags used in these example stand for:

  • -c : Create a new archive in the form of a tar file.
  • -v : Verbose flag, outputs a log after running the command.
  • -z : Zips or unzips using gzip .
  • -x : Extract a file from the archive.
  • -f : Define STDOUT as the filename, or uses the next parameter.

Common Options for Compressing and Archiving Files in Linux

Additional flags used with the tar command are:

Flag Function
-A Append tar files to an existing archive.
-d Show differences between an archive and a local filesystem.
-delete Delete from the archive.
-r Append files to the end of an archive.
-t List the contents of an archive.
-u Append but don’t overwrite the current archive.

These are the basics for working within the command line. Be sure to check the man pages man tar for a more detailed listing of possible flags when compressing and extracting files.

This page was originally published on Thursday, February 1, 2018.

Источник

Использование tar в Linux и FreeBSD для работы с архивами

Обновлено

Обновлено: 14.04.2023 Опубликовано: 18.11.2016

Утилита командной строки tar используется для работы с архивами в операционных системах на базе UNIX. С ее помощью можно архивировать данные и оптимизировать использование дискового пространства.

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

Рассмотрим общий синтаксис для создания и распаковки архивов.

Создать

Создание выполняется с ключом c. Синтаксис следующий:

tar -czvf archive.tar.gz /home/dmosk

* в данном примере будет создан архив archive.tar.gz домашней директории пользователя (/home/dmosk)
** где z — сжать архив в gzip (без этого параметра, tar не сжимает, а создает так называемый тарбол); c — ключ на создание архива; v — verbose режим, то есть с выводом на экран процесса (очень удобно для наблюдением за ходом работы, но в скриптах можно упустить); f — использовать файл (обязательно указываем, так как в большей степени работаем именно с файлами).

Распаковать

Распаковка выполняется с ключом x с синтаксисом:

Читайте также:  Раздать интернет через wifi linux

Форматы

Утилита tar позволяет работать с архивами различных форматов. Рассмотрим их кратко.

gz

tar -cf archive.tar.gz /files

* при возникновении ошибки This does not look like a tar archive, можно воспользоваться командой gzip -d archive.tar.gz.

bz2

* ключ j отвечает за работу с bz2.

Если система ругается на bzip2, значит нужно его установить:

* соответственно, для CentOS (RPM based), Ubuntu (deb based), FreeBSD (BSD based).

Если видим ошибку tar: Unrecognized archive format, воспользуемся следующей командой:

gzip

* ключ z отвечает за работу с gzip.

tgz

TGZ — tar-архив, сжатый с помощью утилиты gzip. По сути, это тот же tar.gz, и работа с ним ведется такими же командами. Рассмотрим примеры работы с данным форматом.

Для создания архива tgz выполняем:

xz

Это формат сжатия данных с помощью алгоритма LZMA. Для работы с ним устанавливаем:

Теперь можно пользоваться.

tar -cpJf archive.tar.xz /home/user

Описание ключей tar

Команды для действия

Ключ Описание
-A Добавление файлов в архив.
-c Создание нового архивного файла.
-d Показать отличающиеся данные между каталогом-исходником и содержимым архива.
—delete Удалить файлы внутри архива.
-r Добавить файлы в конец архива.
-t Показать содержимое архива.
-u Добавить файлы, которых нет в архиве.
-x Извлечь файлы из архива.

* нельзя использовать несколько вышеперечисленных ключей в одной команде.

Дополнительные опции

Ключ Описание
—atime-preserve Оставить прежнюю метку времени доступа для файла.
-b N Задать размер блока N x 512.
-C Смена каталога. По умолчанию, используется тот, в котором мы находимся.
—checkpoint Показать имена папок при чтении архивного файла.
-G Использование старого формата инкрементального резервирования при отображении или извлечения.
-g Использование нового формата инкрементального резервирования при отображении или извлечения.
-h Не дублировать символьные ссылки. Только файлы, на которые указывают эти симлинки.
-i Игнорировать блоки нулей.
-j Использование bzip2.
—ignore-failed-read Игнорировать не читаемые файлы.
-k При распаковке, существующие файлы не заменяются соответствующими файлами из архива.
-L N Смена магнитной ленты после N*1024 байт.
-m При извлечении игнорировать время модификации объекта.
-M Многотомные архивы.
-N DATE Сохранять только более новые файлы относительно DATE
-O Направление извлекаемого на стандартный вывод.
-p Извлечение защищенной информации.
-P Не отбрасывает начальный слэш (/) из имен.
-s Сортировка файлов при извлечении.
—preserve Аналогично -ps
—remove-files Удалить исходные файлы после добавления в архив.
—same-owner Сохранить владельца при извлечении.
—totals Вывод байт при создании архива.
-v Протоколирование действий — отображение списка объектов, над которыми происходит действие.
-V NAME Создание архива на томе с меткой NAME.
—version Показать версию tar.
-w Требовать подтверждения для каждого действия.
-W Проверка архива после записи.
—exclude FILE Исключить файл FILE.
-X FILE Исключить файлы FILE.
-Z Фильтрует архив с помощью compress.
-z Использование gzip.
Читайте также:  Mini computers with linux

* актуальный список опций можно получить командой man tar.

Примеры

Рассмотрим некоторые сценарии использования tar.

Распаковать в определенную папку

tar -C /home/user -xvf archive.tar.gz

* ключ -C используется для указания папки, куда необходимо распаковать файлы из архива.

Распаковка без вложенной папки

Такой способ можно использовать для распаковки в заранее подготовленный каталог. Будет некий эффект переименовывания каталога или аналог «Распаковать здесь»:

tar -C /home/admin/mytar -xvf admin.tar.gz —strip-components 1

* каталог /home/admin/mytar заранее должен быть создан; —strip-components 1 пропустит одну вложенную папку внутри архива.

Указать конкретный файл или каталог для распаковки

Если у нас большой архив, но извлечь нужно конкретный файл или каталог, то можно указать его через пробел после указания файла с архивом. Синтаксис:

Рассмотрим пример. Напомним, что можно посмотреть содержимое архива с помощью опции t:

Теперь можно распаковать архив:

tar -zxf /backup/samba.tar.gz mail

* предположим, что внутри архива samba.tar.gz есть что-то и каталог mail. Извлечем мы только последний.

Исключение файлов по маске

Если необходимо пропустить некоторые файлы, вводим команду с ключом —exclude:

tar —exclude=’sess_*’ -czvf archive.tar.gz /wwwsite

* в данном примере мы создадим архив archive.tar.gz, в котором не будет файлов, начинающихся на sess_.

Также можно исключить несколько файлов или папок, добавляя несколько опций exclude:

tar —exclude=’/data/recycle’ —exclude=’*.tmp’ -zcf /backup/samba/2021-08-29.tar.gz /data/

* в данном примере мы исключим папку recycle и файлы, которые заканчиваются на .tmp

Работа с архивами, разбитыми на части

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

Чтобы создать архив, разбитый на части, вводим команду:

tar -zcvf — /root | split -b 100M — root_home.tar.gz

* данная команда создаст архив каталога /root и разобьет его на части по 100 Мб.

В итоге мы получим, примерно, такую картину:

root_home.tar.gzaa root_home.tar.gzac root_home.tar.gzae
root_home.tar.gzag root_home.tar.gzai root_home.tar.gzab
root_home.tar.gzad root_home.tar.gzaf root_home.tar.gzah

Чтобы собрать архив и восстановить его, вводим команду:

cat root_home.tar.gz* | tar -zxv

Создание tar из отдельных файлов с последующим его архивированием

Мы можем собрать файл tar, добавляя по очереди в него файлы, после чего создать сжатый архив. Предположим, у нас 3 файла: file1, file2, file3.

Сначала создадим tar-файл с первым файлом внутри:

tar -cf ./my_archive.tar ./file1

Следующими двумя командами мы добавим в архив файлы file2 и file3:

tar -rf ./my_archive.tar ./file2

tar -rf ./my_archive.tar ./file3

Сожмем содержимое tar-файла:

ZIP

Tar не работает с zip-архивами. В системах UNIX для этого используем утилиты zip и unzip. Для начала, ставим нужные пакеты:

* соответственно, для RPM based, deb based, BSD based.

zip -r archive.zip /home/dmosk

* создает архив каталога /home/dmosk в файл archive.zip.

Windows

В системе на базе Windows встроенными средствами можно распаковать только ZIP-архивы. Для работы с разными архивами рекомендуется поставить архиватор, например 7-Zip.

Источник

Как заархивировать папку в Linux

wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали, в том числе анонимно, 9 человек(а).

Количество просмотров этой статьи: 68 735.

Самый простой способ передать несколько файлов из Linux-системы — это заархивировать их с помощью команды tar (имейте в виду, что файлы в таком архиве не сжимаются). Если заархивировать папку (каталог), несколько файлов превратятся в один файл, который можно передать, сохранить или сжать, чтобы уменьшить его размер.

Читайте также:  Linux crontab e редактирование

Изображение с названием 865895 1

  • Команда tar заархивирует, но не сожмет файлы. Поэтому размер архива будет равен суммарному размеру всех файлов, которые находятся в нем. Файл с расширением .tar можно сжать с помощью команды gzip или bzip2 , чтобы получить файл с расширением .tar.gz или .tar .bz2 . Процесс сжатия файла описан в конце этой статьи. [1] X Источник информации

Изображение с названием 865895 2

Создайте архив из одной папки (каталога). Команда tar сопровождается рядом опций, когда архив создается из каталога. Далее приведен пример использования команды tar : [2] X Источник информации

tar -cvf Имя.tar /путь/к/каталогу
  • tar — команда, которая запускает архиватор Tar.
  • c — опция, которая отвечает за создание файла с расширением .tar. Эта опция всегда идет первой.
  • v — опция, которая отвечает за вывод на экран подробной информации. То есть в процессе архивирования на экране будут отображаться файлы, которые отправляются в файл с расширением .tar. Вводите эту опцию по желанию.
  • f — опция, которая отвечает за присвоение имени файлу с расширением .tar. Эта опция всегда идет последней.
  • Имя.tar — это имя архива. Введите любое имя по своему желанию, но в конце имени не забудьте добавить расширение .tar . К имени файла можно также добавить путь к файлу, если вы хотите создать архив в другой директории (то есть отличной от текущей).
  • /путь/к/каталогу — это путь к каталогу, из которого создается архив. Этот путь соотносится с вашим текущим каталогом. Например, если полный путь ~/home/user/Pictures , а вы находитесь в каталоге /home , введите /user/Pictures . Имейте в виду, что все подкаталоги также будут включены.

Изображение с названием 865895 3

Создайте архив из нескольких папок (каталогов). Для этого в конце команды tar нужно добавить пути к соответствующим папкам:

tar -cvf Имя.tar /etc/папка1 /var/www/папка2

Изображение с названием 865895 4

Добавьте файлы или папки в существующий архив. Чтобы добавить файлы и папки в существующий файл с расширением .tar, используйте соответствующую опцию: [3] X Источник информации

tar -rvf Имя.tar файл.txt путь/к/другому/каталогу
  • r — опция, которая отвечает за добавление файла или папки в существующий архив. Она ставится вместо опции c , которая используется, когда создается новый архив.

Изображение с названием 865895 5

Сожмите существующий файл с расширением .tar. Чтобы быстро сжать архив, воспользуйтесь командой gzip. Чтобы максимально сжать файл и получить архив наименьшего размера, воспользуйтесь командой bzip2 (имейте в виду, что эта команда будет сжимать архив дольше, чем команда gzip).

  • Команда gzip создаст файл с расширением .gz , то есть получится файл Имя.tar.gz
  • Команда bzip2 создаст файл с расширением .bz2 , то есть получится файл tarName.tar.bz2

Изображение с названием 865895 6

Сожмите архив, когда он создается. Можно сжать уже созданный архив, а можно сжать его в процессе создания с помощью соответствующих опций: [4] X Источник информации

tar -czvf Имя.tar.gz /путь/к/каталогу tar -cjvf Имя.tar.bz2 /путь/к/каталогу
  • z — опция, которая отвечает за сжатие нового архива с помощью gzip. Обязательно добавьте расширение .gz в конце имени файла.
  • j — опция, которая отвечает за сжатие нового архива с помощью bzip2. Обязательно добавьте расширение .bz2 в конце имени файла. [5] X Источник информации

Источник

Оцените статью
Adblock
detector