Разное

Tar архивация: Архивирование данных с помощью архиватора tar.

Содержание

Архивирование данных с помощью архиватора tar.











&nbsp &nbsp Утилита tar первоначально использовалась для создания архивов на магнитной ленте ( tartape archive ).
В настоящее время tar используется для создания архивов на любых носителях и практически, является основным средством хранения файлов и каталогов в одном
файле специального формата. Главным достоинством формата tar является то, что архив содержит не только сами данные архивируемых файлов,
но и информацию о структуре каталогов, владельце, и временнЫе метки ( время создания, модификации, доступа ).
Архиватор tar не выполняет сжатие архивируемых данных, он всего лишь упаковывает множество файлов в один файл, размер которого приблизительно
равен суммарному размеру упакованных файлов ( немного больше за счет добавления собственных служебных заголовков ). Для сжатия же, используются внешние
программы ( gzip, bzip2 и т.п. )

Для получения подсказки по использованию tar введите команду:

tar –help

На экран выдается справка с кратким описанием назначения программы и параметров
командной строки:


Использование: tar [ПАРАМЕТР...] [ФАЙЛ]...
GNU tar предназначен для сохранения файлов на
магнитную ленту или в архив на диске и для
восстановления отдельных файлов из
архива.

Примеры:
  tar -cf archive.tar foo bar  # Создание archive.tar из файлов
foo и bar.
  tar -tvf archive.tar         # Вывод подробного списка
всех файлов в архиве archive.tar.
  tar -xf archive.tar          # Извлечение всех файлов
из archive.tar.

 Основной режим работы:

  -A, --catenate, --concatenate   присоединение tar-файлов
                             к архиву
  -c, --create               создание нового архива
  -d, --diff, --compare      поиск различий между
                             архивом и файловой
                             системой
      --delete               удаление из архива (не на
                             магнитных лентах!)
  -r, --append               добавление файлов в конец
                             архива
  -t, --list                 вывод списка содержимого
                             архива
      --test-label           проверка метки тома архива
                             и выход
  -u, --update               добавление в архив только
                             более новых файлов
  -x, --extract, --get       извлечение файлов из
                             архива

 Модификаторы:

      --check-device         проверять номера устройств
                             при создании инкрементных
                             архивов (по умолчанию)
  -g, --listed-incremental=ФАЙЛ
                             обработка добавочного
                             резервирования нового
                             формата GNU
  -G, --incremental          обработка добавочного
                             резервирования старого
                             формата GNU
      --ignore-failed-read   не завершать работу при
                             ненулевом статусе для
                             нечитаемых файлов
      --level=N              уровень копирования для
                             созданного разностного
                             архива со списком
  -n, --seek                 доступен поиск по архиву
      --no-check-device      не проверять номера
                             устройств при создании
                             инкрементных архивов
      --no-seek              поиск по архиву недоступен
      --occurrence[=N]       обработка только N-ого
                             вхождения для каждого
                             файла в архиве. Эта опция
                             верна только в сочетании с
                             одной из подкоманд --delete,
                             --diff, --extract или --list, и когда
                             список файлов задан либо в
                             командной строке, либо
                             через опцию -T. По умолчанию
                             N равен 1.
      --sparse-version=MAJOR[.MINOR]
                             установить версию
                             используемого формата
                             разрежения (подразумевает
                             --sparse)
  -S, --sparse               эффективная обработка
                             разрежённых файлов

 Управление перезаписью:

  -k, --keep-old-files       не перезаписывать
                             существующие файлы при
                             извлечении
      --keep-newer-files     не перезаписывать
                             существующие файлы,
                             которые более новые, чем их
                             копии в архиве
      --no-overwrite-dir     сохранение метаданных
                             существующих каталогов
      --overwrite            перезапись существующих
                             файлов при извлечении
      --overwrite-dir        перезапись существующих
                             файлов при извлечении (по
                             умолчанию)
      --recursive-unlink     очистка всей иерархии до
                             извлечения каталога
      --remove-files         удаление файлов после их
                             добавления в архив
  -U, --unlink-first         удаление каждого файла до
                             извлечения поверх него
  -W, --verify               попытка проверить архив
                             после его записи

 Выбор выходного потока:

      --ignore-command-error игнорировать коды
                             завершения дочерних
                             процессов
      --no-ignore-command-error   считать ненулевые коды
                             завершения дочерних
                             процессов как ошибку
  -O, --to-stdout            извлекать файлы на
                             стандартный вывод
      --to-command=КОМАНДА
                             перенаправлять
                             извлечённые файлы в другую
                             программу

 Обработка атрибутов файлов:

      --atime-preserve[=СПОСОБ]
                             сохранять время доступа
                             скопированных файлов путём
                             восстановления времени
                             после чтения (СПОСОБ='replace';
                             используется по умолчанию)
                             или не установки времени в
                             первую очередь
                             (СПОСОБ='system')
      --delay-directory-restore   не устанавливать время
                             изменения и права доступа
                             извлечённых каталогов до
                             завершения процесса
                             извлечения
      --group=ИМЯ         принудительно
                             устанавливать ИМЯ в
                             качестве группы для
                             добавленных файлов
      --mode=РЕЖИМ      принудительно
                             устанавливать (символьный)
                             РЕЖИМ доступа для
                             добавляемых файлов
      --mtime=ДАТА-ИЛИ-ФАЙЛ
                             устанавливать для
                             добавленных файлов mtime из
                             ДАТЫ-ИЛИ-ФАЙЛА
  -m, --touch                не извлекать время
                             изменения файла
      --no-delay-directory-restore
                             отменить действие
                             параметра --delay-directory-restore
      --no-same-owner        извлекать файлы как свои
                             собственные (по умолчанию
                             для обычных пользователей)
      --no-same-permissions  применять umask пользователя
                             при извлечении прав
                             доступа из архива (по
                             умолчанию для обычных
                             пользователей)
      --numeric-owner        использовать числа вместо
                             имён владельца/группы
      --owner=ИМЯ         принудительно
                             устанавливать ИМЯ в
                             качестве владельца для
                             добавленных файлов
  -p, --preserve-permissions, --same-permissions
                             извлекать информацию о
                             правах доступа к файлу (по
                             умолчанию для
                             суперпользователя)
      --preserve             эквивалент -p и -s
      --same-owner           попытаться извлечь файлы с
                             тем же владельцем, что и в
                             архиве (по умолчанию для
                             супепользователя)
  -s, --preserve-order, --same-order
                             сортировать извлекаемые
                             имена в том же порядке, что
                             и в архиве

 Выбор и переключение устройств:

  -f, --file=АРХИВ      использовать файл или
                             устройство АРХИВ
      --force-local          файл архива является
                             локальным, даже если
                             содержит двоеточие
  -F, --info-script=ИМЯ, --new-volume-script=ИМЯ
                             запустить скрипт по
                             окончании каждой ленты
                             (подразумевается
                             использование -М)
  -L, --tape-length=N        сменить ленту после записи
                             ЧИСЛО x 1024 байт
  -M, --multi-volume
                             создание/листинг/извлечение
                             многотомных архивов
      --rmt-command=КОМАНДА
                             использовать указанную
                             КОМАНДУ rmt вместо rmt
      --rsh-command=КОМАНДА
                             использовать удалённую
                             КОМАНДУ вместо rsh
      --volno-file=ФАЙЛ  использовать/обновлять
                             номера тома в ФАЙЛЕ

 Разбиение на блоки:

  -b, --blocking-factor=БЛОКИ
                             число БЛОКОВ x 512 байт на
                             запись
  -B, --read-full-records    заново разбивать на блоки
                             при чтении (для каналов 4.2BSD)
                            
  -i, --ignore-zeros         игнорировать нулевые блоки
                             в архиве (т.е. EOF)
      --record-size=N        ЧИСЛО байт на запись,
                             кратное 512

 Формата архива:

  -H, --format=ФОРМАТ  создать архив в указанном
                             формате
  -Y, --lzma                 filter the archive through lzma (depreceated
                             flag)

 ФОРМАТОМ может быть:

    gnu                      формат GNU tar 1.13.х
    oldgnu                   формат GNU как в tar 



Для получения краткой справки по использованию tar введите команду:

tar –usage

При выполнении данной команды, отображаются
варианты использования параметров командной строки без каких-либо пояснений:


Использование: tar [-AcdrtuxGnSkUWOmpsMBiajJzZhPlRvwo?]
            [-g ФАЙЛ] [-f АРХИВ] [-F ИМЯ] [-L N] [-b БЛОКИ]
            [-H ФОРМАТ] [-V ТЕКСТ] [-I ПРОГ]
            [-C КАТАЛОГ] [-K ИМЯ-ЧЛЕНА]
            [-N ДАТА-ИЛИ-ФАЙЛ] [-T ФАЙЛ] [-X ФАЙЛ]
            [--catenate] [--concatenate] [--create] [--diff] [--compare]
            [--delete] [--append] [--list] [--test-label] [--update]
            [--extract] [--get] [--check-device]
            [--listed-incremental=ФАЙЛ] [--incremental]
            [--ignore-failed-read] [--level=N] [--seek] [--no-check-device]
            [--no-seek] [--occurrence[=N]] [--sparse-version=MAJOR[.MINOR]]
            [--sparse] [--keep-old-files] [--keep-newer-files]
            [--no-overwrite-dir] [--overwrite] [--overwrite-dir]
            [--recursive-unlink] [--remove-files] [--skip-old-files]
            [--unlink-first] [--verify] [--ignore-command-error]
            [--no-ignore-command-error] [--to-stdout]
            [--to-command=КОМАНДА] [--acls]
            [--atime-preserve[=СПОСОБ]] [--delay-directory-restore]
            [--group=ИМЯ] [--mode=РЕЖИМ]
            [--mtime=ДАТА-ИЛИ-ФАЙЛ] [--touch] [--no-acls]
            [--no-delay-directory-restore] [--no-same-owner]
            [--no-same-permissions] [--no-selinux] [--no-xattrs]
            [--numeric-owner] [--owner=ИМЯ] [--preserve-permissions]
            [--same-permissions] [--preserve] [--same-owner]
            [--preserve-order] [--same-order] [--selinux] [--xattrs]
            [--file=АРХИВ] [--force-local] [--info-script=ИМЯ]
            [--new-volume-script=ИМЯ] [--tape-length=N] [--multi-volume]
            [--rmt-command=КОМАНДА] [--rsh-command=КОМАНДА]
            [--volno-file=ФАЙЛ] [--blocking-factor=БЛОКИ]
            [--read-full-records] [--ignore-zeros] [--record-size=N]
            [--format=ФОРМАТ] [--old-archive] [--portability]
            [--pax-option=keyword[[:]=значение][,keyword[[:]=значение]]...]
            [--posix] [--label=ТЕКСТ] [--auto-compress]
            [--use-compress-program=ПРОГ] [--bzip2] [--xz] [--lzip]
            [--lzma] [--lzop] [--no-auto-compress] [--gzip] [--gunzip]
            [--ungzip] [--compress] [--uncompress] [--add-file=ФАЙЛ]
            [--backup[=УПРАВЛЕНИЕ]] [--directory=КАТАЛОГ]
            [--exclude=ШАБЛОН] [--exclude-backups] [--exclude-caches]
            [--exclude-caches-all] [--exclude-caches-under]
            [--exclude-tag=ФАЙЛ] [--exclude-tag-all=ФАЙЛ]
            [--exclude-tag-under=ФАЙЛ] [--exclude-vcs] [--dereference]
            [--hard-dereference] [--starting-file=ИМЯ-ЧЛЕНА]
            [--newer-mtime=ДАТА] [--no-null] [--no-recursion]
            [--no-unquote] [--null] [--newer=ДАТА-ИЛИ-ФАЙЛ]
            [--after-date=ДАТА-ИЛИ-ФАЙЛ] [--one-file-system]
            [--absolute-names] [--recursion] [--suffix=СТРОКА]
            [--files-from=ФАЙЛ] [--unquote] [--exclude-from=ФАЙЛ]
            [--strip-components=N] [--transform=РАСШИРЕНИЕ]
            [--xform=РАСШИРЕНИЕ] [--anchored] [--ignore-case]
            [--no-anchored] [--no-ignore-case] [--no-wildcards]
            [--no-wildcards-match-slash] [--wildcards]
            [--wildcards-match-slash] [--checkpoint[=N]]
            [--checkpoint-action=ДЕЙСТВИЕ] [--index-file=ФАЙЛ]
            [--check-links] [--no-quote-chars=СТРОКА]
            [--quote-chars=СТРОКА] [--quoting-style=СТИЛЬ]
            [--block-number] [--show-defaults] [--show-omitted-dirs]
            [--show-transformed-names] [--show-stored-names]
            [--totals[=СИГНАЛ]] [--utc] [--verbose] [--warning=KEYWORD]
            [--interactive] [--confirmation] [--help] [--restrict] [--usage]
            [--version] [ФАЙЛ]...

Можно также воспользоваться встроенной справочной системой:

man tar


Примеры использования tar

tar –create –file=archive.tar file1 file2 — создать в текущем каталоге архив archive.tar из файлов ffile1 и file2

tar -cf archive.tar file1 file2 — то же, что и в предыдущем примере, но с использованием синтаксиса коротких опций ( сокращенных параметров командной строки: -c соответствует —create, -f соответствует —file. При использовании коротких опций, их можно объединять – параметры -c -f файл.tar можно вводить как -cf файл.tar.

tar -cvf archive.tar file1 file2 — то же, что и в предыдущем примере, но с выдачей подробной информации о ходе архивирования .

tar -cvf /backup/archive.tar /home/user/* — создать в каталоге backup архив archive.tar из файлов домашнего каталога пользователя user. При использовании данного формата команды, нередко возникает вопрос, почему tar не включает в архив скрытые файла и каталоги, имена которых начинаются с точки. Это не столько проблема tar, сколько проблема оболочки пользователя ( bash ), которая трактует шаблон * как ”все файлы, исключая скрытые”. Команде tar ( как и прочим командам Linux ) передается не шаблон, а уже подошедший под него файл или группа файлов. Определением подходящих под шаблон объектов занимается сама командная оболочка, в которой исходя из соображений безопасности, шаблон ”*” не включает имена файлов, начинающиеся с точки. Поэтому, для того чтобы создать архив, включающий скрытые файлы данным шаблоном пользоваться не нужно, а просто указать имя архивируемого каталога, например /home/user/:

tar -cvf /backup/archive.tar /home/user/

tar -zcvf /backup/archive.tar.gz /home/user/ — создать архив всех файлов домашнего каталога пользователя user с использованием сжатия данных с помощью gzip

tar -jcvf /backup/archive.tar.bz2 /home/user/ — создать архив всех файлов домашнего каталога пользователя user с использованием сжатия данных с помощью bzip2

tar -acvf /backup/archive.tar.bz2 /home/user/ — создать архив всех файлов домашнего каталога пользователя user с использованием сжатия данных с помощью программы, определяемой автоматически по
имени файла. В данном примере имя архива имеет расширение .bz2 и будет использована программа сжатия bzip2 . Если бы в имени архива имелось расширение .gz, то использовалась
бы программа сжатия данных gzip. Если по имени файла архива невозможно определить программу сжатия,
то архив создается, но сжатие не выполняется. При распаковке архива параметр -a указывать не обязательно, поскольку тип сжатия определяется автоматически в любом случае.

tar -tvf archive.tar — отобразить список файлов и каталогов архива archive.tar

tar -tvf archive.tar > listfiles — то же, что и в предыдущем примере, но с выдачей результатов в текстовый файл listfiles

tar –xvf archive.tar — распаковать (разархивировать) в текущий каталог содержимое архива archive.tar

tar –xvf /backup/archive.tar –C /home2/ — извлечь содержимое архива /backup/archive.tar в каталог /home2.

tar –xv –keep-newer-file –f /backup/archive.tar –C /home2 — то же, что и в предыдущем примере, только перезапись существующих файлов не будет выполнена, если они того же возраста или более новые.

tar –xvkf /backup/archive.tar –C /home2 — если при извлечении данных из архива, будет попытка перезаписи существующего файла, то программа tar завершится ошибкой.

tar –exclude=*log* -zcvf /backup/archive.tar.gz /var/ — при архивировании исключить файлы журналов.

tar —exclude-backups —exclude-caches —exclude-tag-all=excludes.txt -zcvf /backup/home.tar.gz /home/ — при архивировании исключить файлы бэкапов, кэш и все каталоги, в которых присутствует файл с именем excludes.txt

Утилита tar позволяет создавать инкрементные архивы, т.е. содержащие в себе только те файлы, которые были изменены с момента полного или добавочного резервного копирования.
При использовании такого режима архивирования выполняется команда tar с параметром —listed-incremental=ФАЙЛ ( -g ФАЙЛ ), где ФАЙЛ указывает на файл метаданных, в котором хранится информация о состоянии инкрементного архива. Если такого файла не существует, то при выполнении команды создается полный архив, а также новый файл метаданных, который будет использоваться в последующих этапах создания инкрементных резервных копий.

tar -zcvf /backup/home.tar.gz —backup=numbered —listed-incremental=/backup/home_meta /home/ — создать инкрементный архив каталога /home. Параметр —backup=numbered указывает на то, что нужно создавать нумерованные резервные копии. Полный архив, в данном примере, будет создан в виде файла с именем home.tar.gz, а последующие инкрементные архивы будут создаваться с именами home.tar.gz.~1~, home.tar.gz.~2~ и т.д. Для восстановления данных из инкрементного архива нужно сначала разархивировать полный архивный файл, а затем – инкрементные:

tar -zxvf /backup/home.tar.gz -C /home2 — извлечь в каталог /home2 содержимое полного архива.

tar -zxvf /backup/home.tar.gz.~1~ -C /home2 — извлечь в каталог /home2 содержимое первого инкрементного архива.

tar -zxvf /backup/home.tar.gz.~2~ -C /home2 — извлечь в каталог /home2 содержимое второго инкрементного архива.

Использование инкрементного архивирования в tar позволяет, например, создавать автоматически с помощью планировщика периодические резервные копии ( ежедневно, еженедельно, ежемесячно и т.п. )

Если вы желаете помочь развитию проекта, можете воспользоваться кнопкой «Поделиться» для своей социальной сети













В начало страницы           |           На главную страницу сайта

Как создать архив в Linux tar, zip без сжатия и со сжатием файлов

Как создать архив в linux. В этой статье рассмотрим популярные средства для архивирования файлов и папок. Зачем нужно архивирование? Для удобства хранения и перемещения файлов. С его помощью происходит объединение нескольких файлов или папок в один файл.

ОГЛАВЛЕНИЕ:Показать

Следует понимать, что архивация и сжатие это не одно и тоже. Можно произвести архивацию без сжатия (уменьшения объема конечного файла) а можно сжать архив для экономии места на диске. Все зависит от задач.

Работа с архивами при помощи утилиты TAR

Стандартная утилита для создания архивов в linux  — «tar». Синтаксис команды такой:

tar опции имя_файла_архива файл_для_архивации

tar опции имя_файла_архива файл_для_архивации

Основные опции:

  • c — создание нового архива
  • f — имя файла для архива
  • r — добавление файлов в конец архива
  • x — извлечение файлов из архива
  • t — вывод списка содержимого архива
  • v — вывод сведений о работе программы
  • -C — распаковать в указанную папку

Например. У меня есть папка «Test» и я хочу создать архив tar. Для этого нужно дать команду:

Для того, что бы увидеть работу программы можно использовать опцию «v». Будет выведено какие файлы и папки добавлены в архив. Например:

Теперь давайте рассмотрим как добавить файл или папку в уже созданный архив.  Для этого нужно использовать опцию «r». Пример. Добавить файл «file.txt» в архив «Test.tar». Используем команду:

Что бы просмотреть содержимое архива tar используйте команду:

Будет отображено содержимое архива «Test». Теперь давайте рассмотрим как распаковать архив tar. Для этого дайте команду:

Архив будет распакован в текущую папку. Как быть если нужно распаковать не весь архив а извлечь только нужный файл. Допустим я хочу извлечь файл «file.txt». Для этого нужно дать команду:

tar xf Test.tar Test/file.txt

tar xf Test.tar Test/file.txt

Для того, чтобы извлечь архив в другой каталог используйте атрибут «-C». Например требуется распаковать архив в папку «Driver» находящуюся в директории «Zhelezo». Выполню команду:

tar xf Test.tar -C Zhelezo/Driver/

tar xf Test.tar -C Zhelezo/Driver/

Думаю с архивированием и разархивированием файлов и папок в линукс без сжатия все понятно.

Создание архива в Linux с использованием сжатия

Переходим к созданию сжатых архивов. Рассмотрим два основных метода сжатия Gzip (быстрее работает) и Bzip2 (лучше сжимает).

Пример сжатия методом Gzip (утилита сжатия и восстановления (декомпрессии) файлов, использующая алгоритм Deflate):

Для сжатия gzip используем tar z  и расширение  .gz :

tar zcvf Test.tar.gz Test

tar zcvf Test.tar.gz Test

Пример сжатия Bzip2 (утилита для сжатия данных с помощью алгоритма Барроуза — Уилера.):

Для сжатия Bzip2 используем tar j  и расширение .bz2 :

tar jcvf Test.tar.bz2 Test

tar jcvf Test.tar.bz2 Test

Получили два архива «Test.tar.bz2» и «Test.tar.gz».

Распаковать сжатые файлы можно способом описанным выше либо так же используя tar z и tar j . Например. Для распаковки gzip используем команду:

Для распаковки bzip команду:

Как разделить большой архив tar на несколько файлов определенного размера?

Для передачи по сети файла большого размера иногда необходимо разделить его на более мелкие части. В данном примере я расскажу как сделать это с помощью утилиты split. Работа с утилитой проста. Задаем ключ, затем указываем файл и префикс. Разберем на примере. Я «разобью» архив «Test.tar» на части по 10 килобайт:

split -b 10K Test.tar «Test.tar.part»

split -b 10K Test.tar «Test.tar.part»

Размер задаётся целым числом и необязательной единицей изменения
(пример: 10K это 10*1024). Единицы изменения:
K, M, G, T, P, E, Z, Y (степень 1024) или KB, MB, … (степень 1000).

Можно разбить не по размеру а по частям указав количество. Например я разделю тестовый архив на 3 части. Для этого нужно использовать ключ -n . Пример:

split -n3 Test.tar «Test.tar.part»

split -n3 Test.tar «Test.tar.part»

Итак мы поняли как разделить архив и по размеру и обозначив желаемое количество частей. Теперь давайте посмотрим как собрать разделенный архив. Для этого будем использовать утилиту cat . Для объединения всех частей архива вводим команду:

cat Test.tar.parta* > Test.tar

cat Test.tar.parta* > Test.tar

Символ «*» после «.parta» обозначает, что нужно использовать все файлы с именем «parta». После выполнения команды файл будет объединен.

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

Переходим к работе с архивами zip в linux. Для работы нам потребуется утилита zip . По умолчанию она не установлена. Для инсталляции выполним команду:

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

zip имя_файла.zip имя_файла.txt

zip имя_файла.zip имя_файла.txt

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

zip archive.zip file.txt file2.txt file3.txt

zip archive.zip file.txt file2.txt file3.txt

Для архивирования папки используйте ключ -r. Например:

zip -r archive.zip Folder

zip -r archive.zip Folder

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

С помощью утилиты «zip» можно создавать архивы с паролем. Для этого используется опция -P. Например:

zip -P пароль имя_архива.zip имя_файла

zip -P пароль имя_архива.zip имя_файла

Так, что бы создать архив secure.zip в котором будет заархивирован файл «file.txt» с паролем «passwd» введите команду:

zip -P passwd secure.zip file.txt

zip -P passwd secure.zip file.txt

Для того, что бы задавая пароль никто его не увидел укажите ключ  -e или —encrypt . Например. Чтобы создать зашифрованный архив файла «file.txt» с именем «secure.zip» укажите команду:

zip -e secure.zip file.txt

zip -e secure.zip file.txt

После выполнения команды будет выдан запрос на задание пароля и подтверждения:

Enter password:
Verify password:

Enter password:

Verify password:

Напомню, что при вводе пароля отображения символов не будет.

Установка степени сжатия для zip архива. Для утилиты zip можно указать насколько сильно необходимо сжать архив. Можно указать значение от 0 до 9. Здесь 0 это отсутствие сжатия, 9 — максимально. По умолчанию то есть без указания дополнительных параметров, выставлено значение 6. Пример. Для архивации папки «folder» без сжатия команда будет такой:

zip -0 -r folder.zip folder

zip -0 -r folder.zip folder

Учитывайте, что чем выше укажете уровень сжатия тем выше нагрузка на систему и больше времени потребуется на операцию.

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

Что бы распаковать архив zip используйте команду unzip. Например, что бы распаковать архив с именем «archive.zip» дайте команду:

Файлы будут распакованы в текущую директорию. Если требуется распаковать в другую папку то нужно использовать параметр -d . Например. Нужно распаковать архив «archive.zip» в папку с названием «1» находящуюся в папке «Документы». Для этого даем команду:

unzip -d ~/Документы/1 archive.zip

unzip -d ~/Документы/1 archive.zip

Для распаковки зашифрованных архивов на которые был установлен пароль будет выдан запрос на ввод пароля а затем нужно подтвердить указав английскую букву «y».

Создание и распаковка архива tar.xz в Linux

Некоторые программы распространяются в этом формате. Как устанавливать программы в линукс читайте в этой статье.

Ещё один популярный формат архива в линукс .xz. Используется алгоритм сжатия LZMA2, такой же как и в 7z имеющий очень высокую степень сжатия. Расплачиваться за это придется нагрузкой на процессор и большее использование памяти по сравнению .gzip и .bzip2.

В этом разделе я расскажу как создавать и как распаковать tar.xz файл в Linux. Для работы потребуется поддержка утилиты сжатия XZ. Если её нет то установите командой:

sudo apt install xz-utils

sudo apt install xz-utils

Синтаксис для создания архива tar.xz такой:

tar cfJ имя_архива.tar.xz имя_файла

tar cfJ имя_архива.tar.xz имя_файла

  • c — создать архив
  • f — имя файла
  • J — указывает на создание архива xz
  • v или —verbose — можно указать для отображения добавленных в архив файлов

Если передаете аргументы tar с дефисами (например, tar -cf в отличие от tar cf), тогда опция -f должна быть последней , поскольку она указывает имя файла.

Для примера создадим архив папки Test. Для этого дадим команду:

Создан архив Test.tar.xz. Для распаковки архива синтаксис такой:

tar xf имя_файла.tar.xz

tar xf имя_файла.tar.xz

Распаковка архива tar.xz

Для примера распакуем созданный ранее архив папки Test. Для этого нужно дать команду:

  • x — извлечь файлы
  • f — имя файла архива

На этом с архивами формата xz разобрались.

Распаковка RAR в Linux

Для распаковки «RAR» архивов в Linux используется утилиты unrar-free свободное программное обеспечение и unrar . По умолчанию онb не устанавливаются. Для инсталляции используйте команду:

sudo apt install unrar-free

sudo apt install unrar-free

Либо установите несвободную утилиту командой:

Программа unrar-free не всегда может распаковать некоторые архивы RAR 3.0. Для распаковки таких архивов потребуется unrar. Но, чтобы установить несвободные программы у вас должен быть подключен репозиторий non-free. В этой статье я рассказал как подключать репозитории.

Рассмотрим как работать с утилитой unrar-free.

Для просмотра файлов в архиве используется ключ -t. Например:

Для извлечения файлов из архива rar используйте команду unrar с ключом -x . Например, что бы распаковать архив «archive.rar» используйте команду:

Рассмотри работу с утилитой unrar:

Основные опции:

  • e — извлечь файлы в текущий каталог;
  • l — cписок содержимого архива;
  • p — вывести файл на стандартный вывод;
  • t — протестировать архив;
  • v — вывести информация об архиве;
  • x — извлечь файлы с полным путем

Пример. Извлечем каталог archive.rar, для этого выполним команду:

файлы будут распакованы в ту папку в которой находитесь.

Более полную информацию по работе программ всегда можно получить указав в терминале:

имя программы —help — Краткая справка
man имя программы — Подробная справка

имя программы —help — Краткая справка

man имя программы — Подробная справка

На этом все. Думаю с архивированием в линукс разобрались.

Видео: Как создать архив в linux:

TAR – архивирование данных в Windows 10









Начиная с Windows 10 build 17063 утилита командной строки tar.exe является штатным средством архивирования данных. Утилита tar многие годы являлась основным средством архивирования в ОС семейства Linux и первоначально использовалась для создания архивов на магнитной ленте ( отсюда ее название tar — tape archive ). В настоящее время позволяет создавать архивы на любых носителях и практически, является основным средством хранения файлов и каталогов в одном файле специального формата для ОС семейства Linux/BSD. Главным достоинством формата tar является то, что архив содержит не только сами данные архивируемых файлов, но и информацию о структуре каталогов, владельце, и отметки времени ( время создания, модификации, доступа ). Архиватор tar не выполняет сжатие архивируемых данных, он всего лишь упаковывает множество файлов в один файл, размер которого приблизительно равен суммарному размеру упакованных файлов ( немного больше за счет добавления собственных служебных заголовков ). В Linux для сжатия используются внешние программы (gzip/bzip2/xz/lzma ), в Windows – дополнительные параметры командной строки. Используемая в Windows 10 утилита tar.exe базируется на bsdtar

Общий формат командной строки:

tar -f

Как это принято в *nix системах, строчные и заглавные буквы в параметрах командной строки различаются. Сначала необходимо задать параметры архивирования:

-c — создать архив.

-r — добавить/заменить файлы в существующем архиве.

-t — отобразить список файлов в архиве.

-u — обновить содержимое архива. В существующем архиве будут заменены только устаревшие файлы.

-x — извлечь файлы из архива.

Общие параметры:

-b # — использовать #-байтные записи для блоков ввода/вывода. # может принимать значения от 1 до 8192. По умолчанию используются записи длиной 512 байт.

-f — путь и имя файла архива. По умолчанию – магнитная лента (\\.\tape0)

-v — подробный режим вывода информации на экран.

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

Создание архивов.

Формат командной строки:

tar -c [параметры] [ | | @ | -C

-z, -j, -J, —lzma — параметры сжатия архива — gzip/bzip2/xz/lzma

—format {ustar|pax|cpio|shar} — формат архива.

—exclude — исключить из архивирования файлы соответствующие шаблону pattern

, — файлы и каталоги, добавляемые в архив.

@ — добавить в архив записи из уже существующего архива archive

-C — сделать текущим каталогом каталог dir.

tar -c -f D:\Stordiag.tar D:\StorDiag\*.* — создать архив D:\Stordiag.tar из всех файлов каталога D:\StorDiag\

tar -cvf D:\Stordiag.tar D:\StorDiag\*.* — то же, что и в предыдущем примере, но параметры объединены ( -c –v –f можно использовать как –cvf) и добавлен подробный режим вывода ( -v ).

tar -cvzf D:\123.tar.gz D:\StorDiag\*.* @D:\StorDiag.zip — то же, что и в предыдущем примере, но выполняется сжатие архива методом gzip и к файлам создаваемого архива добавляется содержимое уже существующего архива D:\StorDiag.zip

tar -cvzf D:\123.tar.gz D:\StorDiag\*.reg @D:\StorDiag.zip — то же, что и в предыдущем примере, но для архивирования отбираются файлы с расширением .reg. Действие шаблона поиска файлов не распространяется на содержимое архива @D:\StorDiag.zip

Отображение содержимого архива

Формат командной строки:

tar -t [параметры] []

шаблон — шаблон для выводимого списка файлов. Если не задан – выводится список всего содержимого архива.

tar -tf D:\StorDiag.tar.gz — отобразить содержимое архива D:\StorDiag.tar.gz

Извлечение файлов из архива.

tar -x [параметры] []

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

-k — не перезаписывать существующие файлы.

-m — не восстанавливать отметку времени модификации файлов.

-O — записывать содержимое в stdout (выводить на экран), т.е. не восстанавливать на диск.

-p — восстанавливать разрешения, включая списки доступа (ACLs), владельца (owner), атрибуты файлов.

tar -xvzf D:\StorDiag.tar.gz — извлечь содержимое архива StorDiag.tar.gz в текущий каталог.

tar -xvzf D:\StorDiag.tar.gz *.reg — извлечь только файлы с расширением .reg

tar -xvzOf D:\123.tar.gz *.reg — то же, что и в предыдущем примере, но с выдачей информации на экран.

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

Краткую справку по использованию TAR можно получить по команде:

tar /?


Usage:

List: tar -tf

Extract: tar -xf

Create: tar -cf [filenames…]

Help: tar —help


И соответственно, более полную справку можно получить по команде tar –help или tar –h.






Весь список команд CMD Windows

Архиватор tar и zip в Linux — команды распаковать и запаковать с ключами и опциями

Нет ничего лучше для запоминания информации, чем чтение, а потом написание этой информации в тетрадь, вот и я люблю прочитать и записать информацию в свою тетрадь nibbl.ru

Сегодня речь пойдет о такой вещи как архивация, а именно упаковка и распаковка таких форматов как: tar, gzip, zip и rar в в операционных системах Unix и Linux

нашу статью разобьем на разделы, что бы была удобная навигация.

Архивация в Linux

Linux или Линукс сейчас самая популярная система не только для системный администраторов, но уже и для большинства рядовых граждан, а причина банальна — уход от Микрософта на государственном уровне и повсеместное внедрение «свободного ПО российской разработки», но как бы не называли ее мы все понимаем, что единственное свободное ПО которое может заменить для рядового пользователя операционную систему для работы в офисе это семейство Линуксовых. Поэтому как говорится уже можно начинать ее изучать всем повсеместно))))  но давайте не уходить от темы, а вернемся к нашим баранам!

Хоть Linux и имеет графическую оболочку и даже уже можно скачать графические пакеты для работы с самыми популярными расширениями архиваторов, мы будем рассматривать работу с архивами на уровне консоли (но если кому надо сделаем обзор пакетов для работы не через консоль)

Архивация Tar в Linux

Tar — или как мы его называли архиватором таковым не является, причина тому, логика работы данного инструмента! это всего лишь упаковщик, а если быть точнее то задача tar создать контейнер в формате tar в который она помещает выбранные вами файлы (без сжатия). Но если Вам нужно эти данные ужать или сжать для уменьшения размера архива, тогда применяются дополнительные инструменты такие как Gzip или bzip2 (вы должны были обращать внимания, что скачивая пакеты или файлы они имели странный формат name-file.tar.gz  ) Все дело в том, что принцип работы инструмента по сжатию данных, работает только в однопотоковом режиме, поэтому, что бы заархивировать много файлов и их сжать нам необходимо было их упаковать в TAR (один файл), а только потом прогнать через сжатие Gzip или bzip2 поэтому эти инструменты работают как Бонни и Клайд)

Создание архива TAR

Для начала начнем с запаковки архива Tar в Linux/ubuntu, и для этого надо запомнить шаблон или синтаксис команды:

tar [опции] <имя файла.tar> [файлы или папки которые будем упаковывать]

Опции для создания архива tar:

  • c (create) — создать архив
  • f (file) — указать имя архива
  • j (bzip2) — cжать/распаковать архив дополнительно при помощи bzip2
  • z (gzip) — сжать/распаковать архив дополнительно при помощи gzip
  • v (verbose) — выводит список прогресса

Для создания архива tar нам необходимы только две опции c и f, но если вы хотите видеть процесс упаковки файлов, то можете добавить ключ v и тогда вы увидите на экране бегущий список файлов (так сказать «аналог» виндовому прогрессу в виде процентов)

tar -cvf newfile.tar /foto 

в данной команде мы указали создать архив newfile.tar и запаковать всю папку foto

В списке опций вы заметили два ключа j и z эти ключи используются как для сжатия в архив gzip или bzip2 если вам нужно сделать архивацию с сжатием то применяем следующую команду:

tar -cvjf newfile.tar /foto — создаст архив + сжатие newfile.tar.bz2
tar -cvzf newfile.tar /foto — создаст архив + сжатие newfile.tar.gz

 

Распаковать архив TAR

рассмотрим синтаксис команды что бы распаковать или разархивировать tar архив в linux/ubunta :

tar [опции] <имя файла.tar> [файлы или папки которые будем распаковывать]

Опции для создания архива tar:

  • x (extract) — извлечь файлы из архива
  • f (file) — указать имя архива
  • j (bzip2) — cжать/распаковать архив дополнительно при помощи bzip2
  • z (gzip) — сжать/распаковать архив дополнительно при помощи gzip
  • v (verbose) — выводит список прогресса
  • С (в верхнем регистре) — указываем альтернативное место для разархивирования файлов

tar -xvjf newfile.tar.bz2 —  распаковываем архив в категорию в которой находимся
tar -xvzf newfile.tar.gz -C /home/nibbl/desktop — распаковываем архив на рабочий стол

 

Общая информация по работе с Tar

  1. tar —help — вызов справки по командам и параметрам
  2. man tar  — вызов расширенной документации
  3. официальная документация по команде tar — ссылка

 

Архивация Zip в Linux

Архиватор zip — это звезда в мире ПО (ну не считая rar) этот формат очень популярен для windows систем и он по умолчанию уже встроен в чистую сборку операционной системы, поэтому только установив виндовус вы уже можете разархивировать файлы в формате zip

но давайте перейдем к делу, в Linux и Unix системах дела обстоят по другому, это формат Tar идет по умолчанию, а вот для zip надо  поставить пакет unzip

 

Установка:

  1. sudo apt-get update && apt-get upgrade
  2. sudo apt-get install unzip

Создание ZIP архива

Для начала запомним шаблон или синтаксис команды для создания архива zip в linux:

zip [опции] <имя файла.zip> [файлы или папки которые будем упаковывать]

Опции для создания архива tar:

  • r (recurse) — рекурсивное создание архива
  • s (size) — разбивка архива на определенный размер k (kB), m (MB), g (GB) или t (TB)
    пример: zip -s 300m <файл 1 ГБ>
    на выходе получим:
    file.zip (300 mb, master file)
    file.001.zip (300 mb)
    file.002.zip (300 mb)
    file.003.zip (100 mb)
  • P (password) — запаролировать архив  (можно использовать ключ e тогда пароль будете вводить в отдельной строке со звездочками )
    пример: zip -P мойпароль -r file.zip ./home/nibbl/foto
    пример2: zip -er file.zip ./home/nibbl/foto
  • x — исключаем файлы или каталоги из архива
  • 1-9 — степень сжатия (где 1 без сжатия, а 9 лучшее сжатие)

zip –r  -9 -P 123 — archive.zip /home/nibbl/desktop/myfile 

— данной командой мы заархивировали с сжатием папку myfile создали архив с именем archive.zip и установили пароль на архив 123

 

Распаковать zip архив

рассмотрим синтаксис команды что бы распаковать или разархивировать tar архив :

unzip <имя файла.zip>

Опции для создания архива tar:

  • d (directory) — указать директорию для разархивации
  • l — вывести список файлов в архиве
  • d — удалить определенный файл или каталог из уже сделанного архива
  • v — показывает детальную информацию по файлам в архиве  ()

unzip <имя файла.zip> —  распаковываем архив в категорию в которой находимся
unzip <имя файла.zip> -d /home/nibbl/desktop — распаковываем архив на рабочий стол

Общая информация по работе с Zip

  1. zip —help или unzip —help   —  вызов справки по командам и параметрам
  2. man zip или man unzip  — вызов расширенной документации
  3. официальная документация по команде zip — ссылка

Архивируем файлы и папки в терминале Linux

Все мы пользуемся архивами, например zip, tar и так далее, но, есть понятие архивация и сжатие. Это совершенно два разных действия, архивацией называют например создание архивной копии вашей системы. А сжатие обозначает уменьшение размера файла или целой папки. Архивировать можно не только вашу операционную систему, но так же и базы данных, конфигурационные файлы и многое другое. При этом, важно что бы изначальный размер архивируемого объекта так же сжимался, это например будет полезно для экономии места на жестком диске. Думаю с этим все понятно, теперь вы знаете что существует архивация и сжатие файлов. Часто архивация и сжатие файлов производится одновременно. Теперь давайте перейдем к практике, все действия будут совершаться в терминале, так как это универсальный метод позволяющий обойтись без установки дополнительного П.О.

Архивируем папки и файлы командой tar

Для архивирования используется команда tar, давайте немного разберемся с опциями этой команды:

  • tar c – создания архива
  • tar r – добавления в архив файлов или папок
  • tar t – просмотр содержимого архива без его распаковки
  • tar x – распаковка архива
  • tar v расширенный режим, в котором отображается вся информация о процессе

Это лишь малая часть всех опций, которые доступны при выполнении команды tar, полный список можно вызвать командой:

tar --help

Сжатие архива gzip bzip2

Для сжатия архива используется одна из команд, первая это классическая “gzip”, а вторая bzip2. Команда bzip2 лучше сжимает архивы, но, требуется больше времени для сжатия архива. Существенную разницу вы увидите между данными командами лишь при сжатии объемных файлов, а при сжатии файлов малого размера, разница практически не заметна. Для вызова справки по данным командами необходимо выполнить команды:

gzip --help 
bzip2 --help

Архивируем папки и файлы на практике

Теперь давайте перейдем к практике, предположим нам необходимо создать архив папки “test”, для этого необходимо выполнить команду tar с опцией “c”, как вы уже знаете, это опция создает архивы. Далее, дополним данную команду опцией “v”, что бы мы могли видеть процесс создания архива, и последняя опция “f”, это имя создаваемого файла. И так, вводим команду: “tar cvf archive.tar”, в данном примере слово “archive” означает название создаваемого вами архива, оно может быть любым. После чего указываем папки и файлы, которые нам необходимо заархивировать, в данном примере это будет папка “test”:

tar cvf archive.tar test

Таким образом вы можете архивировать сразу несколько директорий и файлов в один архив, для этого необходимо после выполнения команды “tar cvf archive.tar” просто перечислять их имена. Теперь давайте добавим в уже созданный чуть ранее архив файл “test_file”. Для этого служит опция “r”, то есть, теперь вместо опции “c” указываем “r”, остальные опции можно оставить без изменений:

tar rvf archive.tar test_file

После чего воспользуемся опцией “t” для просмотра содержимого архива. В директории “test” так же лежит файл, который называется точно так же, как и директория – “test”. Это отчетливо видно на скриншоте (test/test), и последняя строчка (test_file), это файл, который мы добавляли в уже созданный архив:

tar tvf archive.tar

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

Мы научились создавать архивы, но, их так же необходимо и распаковывать, для этого служит опция “x”. Предположим, нам необходимо распаковать только один файл “test_file”. Для этого необходимо ввести команду “tar” далее указать необходимые опции “xvf”, далее указываем название архива, а после чего название файла, в нашем же случае это “test_file”. для наглядности я перенес данный архив в папку “dir_archive”, так что не удивляйтесь:

tar xvf archive.tar test_file

Для распаковки всего архива выполняем команду “tar”, далее уже знакомые опции “xvf” и название архива, в нашем же случае это “archive.tar”:

tar xvf archive.tar

Если же вам необходимо распаковать архив в какую либо иную директорию, то для этого служит опция “-C”, далее указываем путь к нужной нам директории. Например, возьмем директорию “Документы”, вводим команду для распаковки архива “tar xvf archive.tar” далее указываем опцию “-C” и указываем путь к директории “Документы”:

tar xvf archive.tar -C ~/Документы

Архивация и сжатие файлов и папок

Теперь переходим к сжатию архива, и начнем пожалуй с “gzip”. Для того что бы сжать архив, необходимо ввести команду “tar”, далее указать опции “zcvf”, если присмотритесь, то увидите, что к уже знакомым нам опциям просто добавляем “z”. После чего указываем имя архива, например “gzip_arch“, указываем расширения “tar.gz” и последним шагом указываем файлы и папки которые мы хотим заархивировать. Например, возьмем папку “test” и файл “test_file” и создадим сжатый архив под названием “gzip_arch”. Вводим команду:

tar zcvf gzip_arch.tar.gz test test_file

Для сжатия в “bzip2” необходимо выполнить команду “tar”, затем указываем опции “jcvf”, обратите внимания, что в данном случае первой буквой идет “j”, далее указываем имя создаваемого архива и после чего указываем расширения. Для создания “bzip2” архива необходимо указать расширения “tar.bz2”. Теперь давайте создадим архив с тем же названием (gzip_arch) но при помощи bzip2:

tar jcvf gzip_arch.tar.bz2 test test_file

Для того что бы посмотреть содержимое архива “tar.gz” необходимо ввести команду “tar” далее указать опцию “ztvf” и название архива. Собственно, разница составляет лишь в одной букве – “z”, а для просмотра архива “tar.bz2” необходимо ввести все ту же команду “tar” с опцией “jtvf” и название архива. Как и в прошлый раз, разница все го в одной букве – “j”.

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

Переходим к распаковке созданных чуть ранее архивов, я их переместил в директорию “dir_archive”. Для распаковки архивов “tar.gz” используются опция “z”, а опция “x” означает распаковать данный архив. Далее указываем опции “vf” и название архива, в данном случае это “gzip_arch.tar.gz”: То есть, полная команда будет выглядеть так “tar zxvf gzip_arch.tar.gz”, так же, можно распаковать только определенный файл или папку, для этого просто указываете название папки или файла. Например, распакуем все тот же файл “test_file”:

tar zxvf gzip_arch.tar.gz test_file

Для распаковки архивов “tar.bz2” используются все те же опции но лишь заменив первую букву на “j”, далее все точно так же, указываете название архива, а в нашем случае это “gzip_arch.tar.bz2” и при необходимости файл. Если же вы хотите распаковать весь архив, то достаточно указать в обеих случаях только название самого архива. То есть, давайте распакуем архив “gzip_arch.tar.bz2”, по аналогии точно так же, только изменив опции распаковывается и “gzip_arch.tar.gz” весь целиком:

tar jxvf gzip_arch.tar.bz2

В том случае если вы хотите распаковать архив в другую директорию, то используйте уже знакомую вам опцию “-C”, как мы это делали ранее с архивами. Например, я хочу распаковать архив “gzip_arch.tar.bz2” в директорию “Загрузки”, ввожу команду для распаковки архива, затем указываю опцию “-C”, а затем путь до директории “Загрузки”:

Заключение

На первый взгляд вам может показаться что это все муторно и не понятно, да и зачем в наше время использовать терминал для подобных манипуляций? Но, на самом деле, работая в терминале вы можете сэкономить множество времени, так как создавая архив в терминале, вы можете в него упаковать только те файлы, которые вам необходимо. При этом, достаточно написать их названия, а используя графические версии архиваторов на это у вас может уйти немного больше времени. Да и как уже ранее говорилось, сила Linux в его терминале, и знания терминала порой очень вам может пригодится, так что не стоит его боятся.

А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X

Резервное копирование в Linux – команда tar

Утилита tar в Linux предназначена для объединения (упаковки) нескольких файлов в один, т. е. для создания архивов. Она обладает хорошим функционалом для работы с архивами, умеет эффективно перемещать файлы (архивы или tar-файлы) с одного устройства на другое (включая ленточные устройства), сохраняя при этом атрибуты файлов и структуру файловой системы. Всё это позволяет использовать утилиту в качестве полноценного инструмента для организации резервного копирования. Конечно, для этих целей существуют и другие, специализированные утилиты. Как например dump, однако системным администраторам полезно уметь обращаться также и с tar.

Особенности использования утилиты tar

Как уже отмечалось, утилита объединяет несколько каталогов и файлов в один tar-файл, который потом можно сжать при помощи, например gzip, compress или bzip2. Это очень удобно, когда необходимо и данные зарезервировать и дополнительное место освободить на диске. Утилита часто применяется, когда нужно создать кратковременные резервные копии данных.

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

Синтаксис и опции команды tar

У утилиты tar следующий синтаксис:

tar [опции] название_архива файлы_для_архива

Например, с помощью команды:

$ tar -cf etc.tar /etc

можно сделать копию  каталога /etc в архив etc.tar. Приведённый пример демонстрирует распространённый случай резервного копирования с помощью команды tar. Здесь опция -c означает создание (create) архива, -f – вывод результатов в файл. Во второй части команды, которая принимает на свой вход выходной поток от tar -cf опция -x (extract) указывает tar, что нужно извлекать содержимое архива, -p – сохранять информацию о режимах доступа к файлам. Есть ещё опция -b, позволяющая задавать коэффициент объединения блоков, который полезен при записи на ленточные устройства. Это в некоторых случаях позволяет добиться большей производительности. Оптимальным считается значение 20, однако, поэкспериментировав, можно найти и лучший вариант для конкретных условий. Опция -v позволяет выводить подробную информацию о ходе работы команды.

Синтаксис для распаковки:

tar [опции] архив

Например команда

$ tar xfv archive.tar

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

$ tar xfv archive.tar -с /var

Ниже представлен основной список ключей команды tar

-A, —catenate, —concatenate присоединение tar-файловк архиву
-c, —create создание нового архива
-d, —diff, —compare поиск различий между архивом и файловой системой
—delete удаление из архива (не на магнитных лентах!)
-r, —append добавление файлов в конец архива
-t, —list вывод списка содержимого архива
—test-label проверка метки тома архива и выход
-u, —update добавление в архив только более новых файлов
-x, —extract, —get извлечение файлов из архива

Обратите внимание, что при запуске команды, перед ключами не обязательно ставить знак дефиса

tar примеры

Как уже упоминалось, для создания сжатых архивов сначала создаётся сам архив командой tar, а затем этот архив сжимается с помощью gzip. Но можно всё это сделать и одной командой tar:

$ tar -cvzf archive.tgz *

В результате будет создан сжатый архив gzip archive.tgz, сжатие которого будет выполнено с помощью gzip и благодаря опции z. Символ «*» указывает, что в архив попадёт всё, что находится в текущем каталоге. Здесь же будет создан и целевой архив archive.tgz. Вместо опции z можно указывать и другие — Z, J, j, которые задают соответствующие алгоритмы сжатия — LZV, xz и bzip2.

На всякий случай, перед созданием резервных копий лучше перейти в корневой каталог «/» — утилита убирает начальный символ «/» из имён/путей файлов, из-за чего в последствии информация из архивов может быть восстановлена не совсем правильно.

В случае с резервным копированием (на ленточный носитель) можно использовать следующие команды:

$ cd /
$ tar -cpf /dev/st0 --label="Backup at `date '+%d-%B-%Y'`." -C /home

Как видно, здесь в качестве имени архива используется /dev/st0 – ленточное устройство. Поэтому для идентификации архивов полезно воспользоваться опцией —label, задающей описание конкретного архива. В обратных кавычках подставляется маска для даты/времени создания архива. Опцией -C (или —directory) задаётся директория, подлежащая резервированию. Для выполнения добавочного архивирования, т. е. когда необходимо зарезервировать только изменившиеся с момента предыдущей архивации файлов, следует воспользоваться опцией -N:

$ cd /
$ tar -cpNf /dev/st0 --label="Backup at `date '+%d-%B-%Y'`." -C /home

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

$ cd /
$ tar -dvf /dev/st0

Для резервирования всей системы можно использовать такую команду:

$ cd /
$ tar -cpf /sysarchive/system-at-`date '+%d-%B-%Y'`.tar -C / --exclude=proc --exclude=mnt --exclude=archive --exclude=cache --exclude=*/lost+found .

Здесь с помощью опций —exclude указывается, какие каталоги необходимо исключить из процедуры архивирования, а символ точки «.» в конце команды говорит о том, что нужно обрабатывать все каталоги и файлы, находящиеся в директории, указанной опцией -C. Следует заметить, что в данном примере, в отличие от предыдущих, в качестве целевого архива задан непосредственно tar-файл, а не ленточное устройство.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Шпаргалка по основным командам архиватора tar

Вообще-то tar — это старая программа, разработанная в те времена, когда файлы и архивы хранились магнитных лентах. Сама аббревиатура tar расшифровывается как Tape ARchiver. Из-за своего прямого предназначения он не сжимает данные, а лишь объединяет их в единый файл с последовательным доступом для записи на ленту и по умолчанию этот архивный файл создается на ленточном накопителе, точнее на устройстве /dev/rmt0.

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

Первым аргументом к программе tar всегда должна быть одна из следующих опций: Acdrtux, за которой следуют необязательные дополнительные параметры. Эти опции определяют основные функции программы:

  • -A, —catenate, —concatenate
    добавляет файлы в архив
  • -c, —create
    создает новый архив
  • -d, —diff, —compare
    находит различия между объектами архива и их «исходниками» в файловой системе
  • —delete
    удаляет файлы из архива (эта опция не используется для архивов на магнитной ленте!)
  • -r, —append
    добавляет файлы в конец архива
  • -t, —list
    выводит содержание архива
  • -u, —update
    добавляет только те файлы, которые ранее не были включены в архив
  • -x, —extract, —get
    извлекает файлы из архива

Так как с лентами сейчас практически никто не работает, то к этим обязательным параметрам следует добавить еще один — f. Без него tar будет использовать вместо архива устройство /dev/rmt0.

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

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

Создание архива и сжатие его gzip. Используется параметр -z:

$ tar -czf <имя_архива> <имя_файла|каталога> ... <имя_файла|каталога>

Суффикс .gz не добавляется автоматически к имени создаваемого архива, поэтому лучше сразу задать имя архива с указанием обеих суффиксов: имя.tar.gz.

Создание архива и сжатие его bzip2. Используется параметр -j:

$ tar -cjf <имя_архива> <имя_файла|каталога> ... <имя_файла|каталога>

Лучше сразу задать имя архива с указанием обеих суффиксов: имя.tar.bz2.

При создании архива можно использовать параметр -v — включает вывод списка упакованных в процессе работы файлов.

Распаковка tar архива

Распаковка tar архива задается с помощью ключа -x:

tar -xvf /path/to/archive.tar.bz2

распакует содержимое архива, сжатого bzip2 в текущую папку. Альтернативное место для распаковки можно указать с помощью ключа -C:

$ tar -xvf archive.tar.bz2 -C /path/to/folder

распакует содержимое архива, сжатого gzip в папку /path/to/folder.

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

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

$ tar -tf archive.tar.gz

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

tar обладает очень большими возможностями и кучей параметров, посмотреть которые можно по

$ man tar

или

$ tar --help

Создание файлов tar.gz и zip

Многие материалы состоят из нескольких файлов и их гораздо удобнее
загрузить, если они упакованы в один файл. Две хорошие утилиты для этого
tar и zip.

Обратите внимание, что arXiv в настоящее время не поддерживает архивы rar , bz или
bz2 сжатие. Кроме того, вы не должны просто объединять файлы вместе.
поскольку у arXiv не будет возможности их разумно распаковать.

tar файлов

Утилита tar (для Tape ARchive) — хороший способ упаковать
несколько файлов в один пакет. tar доступен для всех
платформ и устанавливается по умолчанию в большинстве систем Linux / Unix и на
Mac с OSX. См. Наше обсуждение доступности и
установка.

tar файлы имеют расширение .tar

В командной строке Unix вы создаете tar-архив следующим образом. Предположим
у вас есть несколько файлов, foo.tex , fig1.eps , fig2.eps . Затем
следующее создает файл tar с именем mystuff.tar , включая эти файлы:

 $ tar -cvf mystuff.tar foo.tex fig1.eps fig2.eps
 

Предупреждение: Если вы забудете ввести имя файла mystuff.tar , tar будет
перезаписать первое имя файла, которое он видит (в этом случае foo.tex следующее
в очереди). Разве Unix — это не весело?

Затем вы захотите использовать gzip для сжатия tar-файла для
самая быстрая загрузка:

, который создаст файл с именем mystuff.tar.gz .

В качестве альтернативы, большинство версий tar позволяют создавать архивные файлы tar.
в одном действии.Используя приведенный выше пример, чтобы создать архивный tar-файл
позвоните по номеру mystuff.tar.gz , выполните следующие действия:

 $ tar -cvzf mystuff.tar.gz foo.tex fig1.eps fig2.eps
 

zip файлов

Различные утилиты могут создавать файлов zip и файлов. К ним относятся WinZip на
Системы Windows и Zip, StuffIt (коммерческая версия) в системах Mac.
zip файлов позволяют как упаковать несколько файлов, так и сжать
результат и так по существу эквивалентен .tar.gz файлов.

Распаковка файла .tar.gz

См. Нашу справочную страницу по распаковке для получения информации о распаковке.
.tar.gz файлов.

«Создание файлов tar.gz и zip», версия 0.6.1. Последнее изменение 2019-01-04.

.

tarfile — чтение и запись файлов архива tar — документация Python 3.8.6

Возвращает объект TarFile для пути name . Для подробного
информация об объектах TarFile и аргументах ключевых слов, которые
разрешено, см. Объекты TarFile.

mode должен быть строкой вида 'filemode [: сжатие]' , по умолчанию
к 'r' . Вот полный список комбинаций режимов:

режим

действие

'r' или 'r: *'

Открыто для чтения с прозрачным
сжатие (рекомендуется).

'r:'

Открыто для чтения исключительно без
сжатие.

'r: gz'

Открыто для чтения со сжатием gzip.

'r: bz2'

Открыто для чтения со сжатием bzip2.

'r: xz'

Открыт для чтения со сжатием lzma.

'x' или
'x:'

Создавать tarfile исключительно без
сжатие.
Вызвать исключение FileExistsError
если он уже существует.

'x: gz'

Создайте tar-файл со сжатием gzip.
Вызвать исключение FileExistsError
если он уже существует.

'x: bz2'

Создайте tar-файл со сжатием bzip2.Вызвать исключение FileExistsError
если он уже существует.

'x: xz'

Создайте tar-файл со сжатием lzma.
Вызвать исключение FileExistsError
если он уже существует.

«а» или «а»:

Открыто для добавления без сжатия. В
файл создается, если он не существует.

«ш» или «ш»:

Открыто для записи без сжатия.

'ширина: gz'

Открыто для записи в сжатом формате gzip.

'ш: bz2'

Открыт для записи в сжатом формате bzip2.

'ширина: xz'

Открыт для записи в сжатом формате lzma.

Обратите внимание, что 'a: gz' , 'a: bz2' или 'a: xz' невозможно.Если режим
не подходит для открытия определенного (сжатого) файла для чтения,
ReadError возникает. Чтобы этого избежать, используйте режим 'r' . Если
метод сжатия не поддерживается, возникает ошибка CompressionError .

Если указан fileobj , он используется как альтернатива файловому объекту
открыт в двоичном режиме для имя . Предполагается, что он находится в позиции 0.

Для режимов 'w: gz' , 'r: gz' , 'w: bz2' , 'r: bz2' , 'x: gz' ,
'x: bz2' , tarfile.open () принимает аргумент ключевого слова
compresslevel (по умолчанию 9 ), чтобы указать уровень сжатия файла.

Для специальных целей существует второй формат для режима :
'файловый режим | [сжатие]' . tarfile.open () вернет TarFile
объект, который обрабатывает свои данные как поток блоков. Никакой случайный поиск не будет
делать по файлу. Если задано, fileobj может быть любым объектом, имеющим
read () или write () метод (в зависимости от режима ). размер
указывает размер блока и по умолчанию 20 * 512 байта. Используйте этот вариант
в сочетании, например, с sys.stdin , объект файла сокета или лента
устройство. Однако такой объект TarFile ограничен тем, что
не разрешать произвольный доступ, см. Примеры. В настоящее время
возможные режимы:

Режим

Действие

'r | *'

Открыть поток блоков tar для чтения
с прозрачным сжатием.

'r |'

Открыть поток несжатых блоков tar
для чтения.

'r | gz'

Открыть сжатый gzip поток для
чтение.

'r | bz2'

Откройте сжатый bzip2 поток для
чтение.

'r | xz'

Открыть сжатый lzma поток для
чтение.

'ш |'

Открыть несжатый поток для записи.

'w | gz'

Открыть сжатый gzip поток для
письмо.

'ш | bz2'

Откройте сжатый bzip2 поток для
письмо.

'ширина | xz'

Открыть сжатый lzma поток для
письмо.

Изменено в версии 3.5: добавлен режим 'x' (эксклюзивное создание).

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *