Архивация папок в linux

Использование 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 с синтаксисом:

Форматы

Утилита 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.
Читайте также:  Driver update for 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 Мб.

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

Читайте также:  Samsung m2070 linux driver

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.

Источник

Создаем zip-архивы в командной строке

Рассмотрим, как создавать и распаковывать zip архивы из командной строки.

Для создания архивов служит команда zip. У нее есть более 30 разных опций, но я рассмотрю простейшие примеры.

Создаем простой zip-архив

Для создания zip-архива просто выполняем команду zip, в первом аргументе указываем имя будущего архива, а во втором сам файл, который мы сжимаем:

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

zip myarchive.zip myfile.txt yourfile.txt theirfile.txt

Создаем zip-архив папки

Чтобы заархивировать папку, используется ключ -r:

zip -r mydir.zip verygooddir

Создаем zip-архив с паролем

Очень важной функцией утилиты zip является возможность задания пароля на распаковку архива. Для этого применяется опция -P, после которой следует написать пароль:

zip -P мойпароль -r mysecretdir.zip mysecretdir

Если вы не хотите вводить пароль в командной строке у всех на виду, то можно использовать опцию -e, чтобы вместо ввода пароля в открытую, вводить его в срытом виде:

zip -er mysecretdir.zip mysecretdir

После выполнения данной команды, вам будет предложено дважды ввести пароль. Сам пароль виден при этом не будет:

Enter password: Verify password:

Распаковка zip-архива

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

По умолчанию распаковка происходит в текущей директории. Чтобы распаковать архив в другую директорию, используется опция -d, после которой нужно указать путь до директории:

Источник

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

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

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

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

Читайте также:  Linux commands for ubuntu

Изображение с названием 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