Как создать архив tar

Содержание
  1. Tar — как запаковать и распаковать tar gz и tar bz2
  2. Как установить, создать архив Tar и распаковать его в Windows
  3. Как запаковать архив tar.gz и tar.bz2 в Ubuntu, Debian, CentOS
  4. Как распаковать архив tar.gz и tar.bz2 Ubuntu, Debian, CentOS
  5. Просмотр архивов tar в Linux
  6. Иные возможности tar
  7. Создание инкрементальных и дифференциальных архивов при помощи tar в Linux
  8. Возможности tar
  9. Создание инкрементальных архивов
  10. Создание дифференциальных архивов
  11. Команда tar в Линукс
  12. Синтаксис
  13. Примеры
  14. Создание
  15. tar/gz
  16. tar/bz2
  17. Просмотр
  18. Распаковка
  19. Разархивируем tar.gz
  20. Разархивируем tar.bz2
  21. Разархивируем единичный файл
  22. Здесь:
  23. Извлекаем отдельный документ tar.gz
  24. Команда tar и zip в Linux
  25. Архивация Tar в Linux
  26. Создание архива TAR
  27. Распаковать архив TAR
  28. Архивация Zip в Linux
  29. Создание ZIP архива
  30. Распаковать zip архив
  31. Создание и извлечение архивов с помощью команды Tar в Linux
  32. Синтаксис командной строки
  33. Создание Tar Archive
  34. Создание архива Tar Gz
  35. Создание архива Tar Bz2
  36. Листинг архива Tar
  37. Извлечение архивов Tar Gz и Tar Bz2
  38. Добавление файлов в существующий архив
  39. Удаление файлов из tar-архива
  40. Вывод
  41. Архивирование файлов в Linux
  42. Архивирование в Linux
  43. Tar
  44. Shar
  45. Ar
  46. Cpio
  47. Сжатие архивов в Linux
  48. Gzip
  49. Bzip
  50. Lzma
  51. Xz
  52. Zip
  53. Выводы

Tar — как запаковать и распаковать tar gz и tar bz2

Как создать архив tar

Tar — это популярный файловый архиватор в Unix/Linux системах.

Tar зачастую используется вместе с архиваторами GZip или BZip2, так как они отлично взаимодополняют друг друга: Tar не может сжимать файлы, только собирать их в одни архив, а GZip и BZip2 не могут сжимать несколько файлов одновременно, поэтому если вам нужно запаковать несколько файлов и директорий, сначала они собираются в один несжатый архив с помощью Tar, который сохранит их некоторые атрибуты, например такие, как права доступа, а затем этот архив сжимается с помощью GZip или BZip2. Весь процесс запускается одной консольной командой, про которые далее.

Как установить, создать архив Tar и распаковать его в Windows

Чтобы использовать Tar в Windows, нужно воспользоваться одним из следующих вариантов:

  1. Установить Far Manager.
    Инструкция по созданию и распаковке архива .tar с помощью Far Manager:
    • Теперь просто выделяете ПКМ (правой кнопкой мыши) или кнопкой клавиатуры Insert нужные вам файлы и папки и жмёте Shift + F1, затем выбираете нужный формат (в нашем случае, TAR) и создаёте архив:Создание архива в Far ManagerПри желании, в поле Добавить к архиву можно изменить название архива, а в поле Ключи можно ввести пароль от него.
    • Чтобы распаковать архив Tar, просто выделяете ПКМ или Insert нужный архив и жмёте Shift + F2Как распаковать Tar в Far ManagerВ поле Распаковать в вводится путь, куда распаковать архив. Если нужно распаковать в текущую папку, нужно оставить поле Распаковать архив пустым. Если архив запаролен, пароль вводится в поле Пароль.
  2. Также, можно обойтись без Far Manager, установив 7-Zip

    Скачать 7-zip архиватор

    Всё управление — создать архив и распаковать его — через ПКМ и Проводник Windows

Как запаковать архив tar.gz и tar.bz2 в Ubuntu, Debian, CentOS

tar cfvz archive.tar.gz *.php

где tar — команда, cfvz — ключи, archive.tar.gz — имя будущего архива, *.php — список файлов, которые нужно заархивировать.
Список можно заменить директорией, которую нужно запаковать целиком, для этого указываем путь до неё, абсолютный или относительный

tar cfvz archive.tar.gz /forpack

Теперь подробнее про ключи

  • -с — команда, которая означает «создать архив»
  • -f — команда на упаковку файлов и директорий в один файл архива
  • -v — включает визуальное отображение процесса архивации
  • -z — использовать для сжатия GZip

Также, можно использовать для сжатия BZip2. Для этого нужно использовать ключ -j вместо -z.
В этом случае, команда для запаковки tar.bz2 будет выглядеть так

tar cfvj archive.tar.bz2 /forpack

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

Чтобы исключить определённый каталог или файл из архива, можно воспользоваться ключом –exclude.
Сначала переходим в нужный каталог, затем используем следующую команду:

tar cfvz wp-content.tgz wp-content –exclude=wp-content/updraft –exclude=wp-content/uploads –exclude=wp-content/cache

Тут мы запаковываем каталог /wp-content/ на WordPress, исключая раздел Updraft wp-content/updraft, раздел Загрузки wp-content/uploads и Кеш wp-content/cache.

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

Как распаковать архив tar.gz и tar.bz2 Ubuntu, Debian, CentOS

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

tar xfvz archive.tar.gz

С помощью ключа -С можно указать путь, куда нужно распаковать архив

tar xfvj archive.tar.bz2 -C /var/www

Просмотр архивов tar в Linux

Для просмотра содержимого архивов можно использовать ключ -t

tar -tf archive.tar.bz2

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

Иные возможности tar

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

tar –help (3 в среднем: 5,00 из 5)
Загрузка…

Источник: https://sheensay.ru/tar

Создание инкрементальных и дифференциальных архивов при помощи tar в Linux

Как создать архив tar

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

Несмотря на то, что Linux есть специализированные пакеты для резервного копирования, их использование во многих случаях будет избыточным, потому что такая задача достаточно просто решается при помощи архиватора tar, который присутствует “из коробки” в любом дистрибутиве.

Возможности tar

Утилита tar является штатным архиватором в Unix-подобных системах и полностью соответствует философии Unix – делать только одну вещь, но делать ее хорошо.

Многие, возможно, удивятся, но tar не умеет сжимать архивы, потому что архивация данных и их сжатие – это разные операции. Архивация предусматривает помещение файлов в единый контейнер, целостность которого легко контролировать, особенно при передаче по каналам связи.

Сжатие – это дополнительная операция, выполняемая над архивом, которая позволяет уменьшить его размер, но не является обязательной.

В современном понимании “архивация” и “сжатие” чаще всего являются синонимами, так как архивация без сжатия практически никогда не используется.

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

Более подробно консольные утилиты для сжатия мы рассматривали в нашем тестировании.

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

tar -czf archive.tgz ~/my_folder

или

tar –create –gzip –file=archive.tgz ~/my_folder

Даже не будучи знакомым с опциями утилиты вполне можно понять, что мы создаем архив папки my_folder, сжимаем его при помощи gzip и помещаем в файл archive.tgz.

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

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

Создать такой архив можно командой:

tar –create –gzip –file=archive.tgz –listed-incremental=my_folder.snar ~/my_folder

К стандартной команде добавилась новая опция –listed-incremental, которая указывает на файл метаданных. Если он отсутствует, то создается полная копия, иначе состояние файлов сверяется с метаданными и создается инкрементальный архив.

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

  • –ignore-failed-read – игнорирует файлы, которые невозможно прочитать, например, заблокированные другими процессами или на которые нет прав.
  • –one-file-system – не выходить за пределы файловой системы, используется при нахождении в целевом каталоге точек монтирования на другие разделы.
  • -p или –preserve-permissions – восстанавливает владельца и разрешения для объектов. Используется только при извлечении.
  • -s или –preserve-order – предписывает использовать порядок файлов из архива при извлечении, может быть полезна на компьютерах с малым объемом оперативной памяти, в ином случае не имеет смысла. Используется только при извлечении.
  • –sparse – используется при архивации разреженных файлов, т.е. тех, которые имеют в своем составе незаписанные области, позволяет не копировать пустые участки файлов. Может существенно замедлить процесс архивации, так как перед архивированием файл будет дополнительно прочитан.

Практический смысл из указанных опций имеет только –ignore-failed-read, особенно если вы выполняете бэкап с правами обычного пользователя.

Остальные опции следует применять исключительно при наличии такой необходимости.

Скажем –preserve-permissions имеет смысл, если вы восстанавливаете архив со сложной структурой прав на объекты, например, копию веб-сайта, для обычного архива личных файлов ее использование обычно бессмысленно.

Опции –preserve-order и –sparse скорее всего не пригодятся на современных системах.

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

Если нужно копировать не всё, то следует указать исключения, для этого используются две опции: –exclude и –exclude-from. Первая позволяет просто указать файл, папку или паттерн для исключения. Например:

–exclude=*.tmp

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

–exclude=dir1/tmp

А такая конструкция предписывает не копировать директорию dir1/tmp. Обратите внимание, что все пути указываются относительно директории архивируемой директории, т.е. в нашем случае полный путь к папке будет ~/my_folder/dir1/tmp.

Если нужно исключить сразу несколько объектов, то опцию следует использовать нужное число раз:

–exclude=*.tmp –exclude=dir1/tmp

Это может быть неудобно, поэтому можно поместить исключаемые объекты в отдельный файл, по одной записи на строку и использовать его совместно с другой опцией:

–exclude-from=exclude.list

Составляя списки учтите, что записи обрабатываются “дословно”, поэтому обращайте внимание на наличие пробелов, они не видны в редакторе, но являются самой частой причиной того, что списки не работают как надо.

Мы рассмотрели только самые часто используемые опции, для полной информации обратитесь к официальной документации.

Создание инкрементальных архивов

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

К достоинствам этого типа архивов можно отнести небольшой размер и эффективное использование пространства хранилища (не дублируются данные).

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

Если один из архивов в цепочке окажется поврежден или утерян – полноценное восстановление сделать не удастся, поэтому не следует злоупотреблять большой длинной цепочки.

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

#!/bin/sh#Указываем путь к директории с бэкапамиBACKUP=/home/andrey/backup#Получаем номер дня неделиDAY=$(date +%u)#Если воскресенье – удаляем файл метаданных и архивыif [ “$DAY” = “7” ]; then NUM=”0″ rm -rf $BACKUP/example.snar rm -rf $BACKUP/*.tgzelse NUM=”$DAY”fi#Создаем архивtar –create \ –gzip \ –file=$BACKUP/example.$NUM.tgz \ –ignore-failed-read \ –listed-incremental=$BACKUP/example.snar \

/home/andrey/example

На что следует обратить внимание? Прежде всего на указание пути, в данном случае мы используем полный путь /home/andrey/backup, вместо относительного ~/backup, потому что относительный путь зависит от контекста исполнения. Так если мы запустим скрипт от имени суперпользователя, то ~/backup будет обозначать /root/backup, что может привести к самым неожиданным последствиям.

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

tar –create –gzip –file=$BACKUP/example.$NUM.tgz –ignore-failed-read –listed-incremental=$BACKUP/example.snar /home/andrey/example

Такой скрипт можно поместить в cron с исполнением один раз в сутки, и мы получим в папке с бэкапами архивы с номерами от 0 до 6, где 0 – будет полный архив, а 1-6 – инкрементальные к нему.

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

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

Создание дифференциальных архивов

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

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

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

Вот пример такого скрипта, все условия аналогичные скрипту выше:

#!/bin/sh#Указываем путь к директории с бэкапамиBACKUP=/home/andrey/backup#Получаем номер дня неделиDAY=$(date +%u)#Удаляем текущие метаданныеrm -rf $BACKUP/example.snar#Если воскресенье – удаляем файл начальных метаданных и архивыif [ “$DAY” = “7” ]; then NUM=”0″ rm -rf $BACKUP/example.snar0 rm -rf $BACKUP/*.tgzelse NUM=”$DAY”fi#Если есть начальные метаданные – копируем ихif [ -f “$BACKUP/example.snar0” ]; then cp $BACKUP/example.snar0 $BACKUP/example.snarfi#Создаем архив tar –create \ –gzip \ –file=$BACKUP/example.$NUM.tgz \ –ignore-failed-read \ –listed-incremental=$BACKUP/example.snar \ /home/andrey/example#Если воскресенье – создаем начальную копию метаданныхif [ “$DAY” = “7” ]; then cp $BACKUP/example.snar $BACKUP/example.snar0

fi

Логика скрипта довольно проста. В обычный день мы удаляем перед архивированием текущий файл метаданных example.snar и копируем на его место начальную копию файла example.snar0 . В итоге каждый создаваемый архив будет содержать все новые или измененные файлы начиная с воскресенья, в которое мы создали полный архив.

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

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

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

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

Источник: https://interface31.ru/tech_it/2019/09/sozdanie-inkremental-nyh-i-differencial-nyh-arhivov-pri-pomoshhi-tar.html

Команда tar в Линукс

Как создать архив tar

Многие владельцы персональных компьютеров предпочитают пользоваться операционной системой Linux. При возникновении необходимости архивации данных на ПК нередко устанавливаются различные сторонние программы. К примеру, специальный архиватор Zip Linux приобрел свое широкое распространение благодаря тому, что совместим с ОС Windows.

Нестандартные программы для Linux применяются весьма широко. Стоит отметить, что в этой операционной системе есть и встроенный архиватор, который отличается хорошей производительностью. Эта команда имеет название tar.

Утилита tar для ОС «Линукс» – это специальная команда, применяемая при архивации различных типов файлов. Она имеется по умолчанию в каждом дистрибутиве, дает возможность распаковывать и создавать файлы.

Синтаксис

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

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

Рассмотрим синтаксис.

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

tar [функция] [параметры] [название архива.tar] [файлы]

Распаковка:

tar (параметры) (файл.tar)

Утилита отличается хорошей производительностью и функциональностью. Существует определенный список опций, которые поддерживает эта команда:

  • «-А». Присоединение имеющегося архива к стороннему архиву.
  • «-с». Создание нового сжатого файла.
  • «-d». Определение отличий между двумя определенными архивами, удаление документов.
  • «-r». Присоединение файлов к архиву. Они располагаются в конце.
  • «-t». Формирование перечня содержимого в архиве.
  • «-u». Обновление архивных данных, дополнение данными с аналогичными именами.
  • «-х». Извлечение требуемых документов из архива.

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

  • «-С» (–directory=DIR). Изменение адреса каталога перед проведением мероприятий на dir.
  • «-f» (–file). Вывод результата в определённый файл или на конкретное устройство.
  • «-j» (–bzip2). Перенаправление вывода информации к bzip2.
  • «-p» (–same-permissions). Сохранение доступности относительно определенного документа.
  • «-v». (–verbose; –totals). Вывод подробных данных о совершаемых или уже завершенных процессах.
  • «-z». (–gzip). Перенаправление вывода на gzip.

Примеры

Все примеры можно разделить на три группы: создание; просмотр; распаковка.

Рекомендуется тщательно изучить примеры использования команды для ОС Линукс. Они позволят быстро справиться с поставленной задачей.

Создание

Для первого примера, создадим новый архив newarhiv.tar из одного документа /root/catalog/test.

С помощью команды cd зайдем в директорию /root/catalog.

cd /root/catalog/

Далее будем использовать функцию “-c” создание нового архива, параметр “-v” вывод подробной информации, “-f” результат записать в документ.

tar -cvf newarhiv.tar test

Здесь:

  • «-cvf» – функция и опции.
  • «newarhiv.tar» – название нового сжатого документа.
  • «test» – название файла, который нужно запаковать.

Если требуется запаковать несколько документов, то будет выглядеть так:

tar -cvf newarhiv.tar test test2 test3

tar/gz

tar.gz – это архив созданный утилитой tar, в последствии запакованный Gzip.

Запакуем tar.gz все файлы в каталоге “/root/catalog” . Для этого необходимо использовать аргумент “-z” (gzip).

tar -cvzf arhiv2.tar.gz /root/catalog/

tar/bz2

tar.bz2 – это архив созданный утилитой tar, в последствии запакованный Bzip 2.

Файлы в формате bz2 сжимаются лучше, чем gz, соответственно занимают меньше места.

Запакуем документ “newfile” в каталоге “/root/primercataloga” в формате bz2. Для этого будем использовать аргумент “-j”

tar cvfj dokument.tar.bz2 newfile

Просмотр

Откроем newarhiv.tar для просмотра. Для этого, необходимо использовать аргумент “-t”.

tar -tvf /root/catalog/newarhiv.tar

 Просмотр tar.gz

Откроем oldfile.tar.gz для просмотра. Синтаксис команды тот же, что и при открытии простого “.tar”.

tar -tvf oldfile.tar.gz

Просмотр bz2

Откроем документ oldfile.tar.bz2.

tar -tvf oldfile.tar.bz2

Распаковка

Для извлечения определенного файлового архива потребуется использование функции «х». Извлечем документ newarhiv.

tar -xvf newarhiv.tar

Разархивируем tar.gz

Для разархивации файла формата tar.gz потребуется также использование опции «х».

tar -xvf arhiv2.tar.gz

Разархивируем tar.bz2

Для разархивирования сжатого файла bz2, также применяется аргумент «х».

tar -xvf dokument.tar.bz2

Разархивируем единичный файл

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

Для примера, требуется распаковать файл test из архива arhiv.tar.

tar -xvf arhiv.tar test

Здесь:

  1. “x” – извлечение.
  2. “v” – подробный вывод информации.
  3. “f” – вывод результата.

Извлекаем отдельный документ tar.gz

Представим для примера, что требуется распаковать index.php из site.tar.bz2. Для этого стоит указать в командной строке:

tar -jxvf site.tar.bz2 index.php 

Источник: https://www.vseprolinux.ru/tar

Команда tar и zip в Linux

Как создать архив tar

Нет ничего лучше для запоминания информации, чем чтение, а потом написание этой информации в тетрадь, вот и я люблю прочитать и записать информацию в свою тетрадь 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:

  • 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:

  • 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 — распаковываем архив на рабочий стол

  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 [опции] [файлы или папки которые будем упаковывать]

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

  • r (recurse) — рекурсивное создание архива
  • s (size) — разбивка архива на определенный размер k (kB), m (MB), g (GB) или t (TB)пример: zip -s 300m на выходе получим: 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

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

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

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

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

Источник: https://www.nibbl.ru/ubuntu/komanda-tar-i-zip-v-linux.html

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

Как создать архив tar

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

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

Tar был первоначально разработан для создания архивов при хранения файлов на магнитной ленте, поэтому он имеет свое название « T ape AR chive».

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

Синтаксис командной строки

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

tar [OPERATION_AND_OPTIONS] [ARCHIVE_NAME] [FILE_NAME(s)]

  • OPERATION– Разрешается и требуется только один аргумент. Наиболее часто используемые операции:
    • –create( -c) – Создание нового tar-архива.
    • –extract( -x) – Извлечь весь архив или один или несколько файлов из архива.
    • –list( -t) – отобразить список файлов, включенных в архив
  • OPTIONS – Наиболее часто используемые операции:
    • –verbose( -v) – Показать файлы, обрабатываемые командой tar.
    • –file=archive=name( -f archive-name) – Указывает имя файла архива.
  • ARCHIVE_NAME – Название архива.
  • FILE_NAME(s)– список имен файлов, разделенных пробелами, которые нужно извлечь. Если не предусмотрено, весь архив будет извлечен.

При выполнении команды tar вы можете использовать длинную или краткую форму операций и параметров tar. Длинные формы более читабельны, а короткие формы – быстрее. Опции длинной формы имеют префикс двойной тире ( –). Параметры короткой формы имеют префикс с одним тире ( -), который можно опустить.

Создание Tar Archive

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

tar -cf archive.tar file1 file2 file3

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

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

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

tar -cf backup.tar /home/username

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

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

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

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

tar -czf archive.tar.gz file1 file2

Опция  -zсообщает tar сжать архив, используя алгоритм  gzip.

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

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

Когда указана опция  -j , tar будет использовать алгоритм bzip2 сжатия архива.

Следующая команда создаст архив tar.bz2 из заданных файлов:

tar -cjf archive.tar.bz2 file1 file2

Листинг архива Tar

Чтобы перечислить содержимое tar-архива, используйте операцию –list( -t).

tar -tf archive.tarfile1file2file3

Если вы укажете содержимое архива с помощью параметра –verbose( -v), tar будет печатать больше информации, например, владельца, размера файла, метки времени и т.д.:

tar -tvf archive.tar-rw-r–r– linuxize/users 0 2018-09-08 20:15 file1-rw-r–r– linuxize/users 0 2018-09-08 20:15 file2-rw-r–r– linuxize/users 0 2018-09-08 20:15 file3

Для извлечения tar-архива используйте оператор –extract( -x) и укажите имя файла архива:

tar -xf archive.tar

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

tar -xvf archive.tar

По умолчанию tar будет извлекать содержимое архива в текущем рабочем каталоге. Используйте –directory( -C) для извлечения архивных файлов в определенном каталоге:

Например, чтобы извлечь содержимое архива в каталог /opt/files, вы можете использовать:

tar -xf archive.tar -C /opt/files

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

При извлечении сжатых архивов, например, tar.gzили tar.bz2 вам не нужно указывать параметр декомпрессии. Команда такая же, как при извлечении архива tar:

tar -xf archive.tar.gztar -xf archive.tar.bz2

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

tar -xf archive.tar file1 file2

При извлечении файлов вы должны указать свои точные имена, включая путь, как напечатано –list( -t).

Извлечение одной или нескольких каталогов из архива аналогично извлечению файлов:

tar -xf archive.tar dir1 dir2

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

tar -xf archive.tar READMEtar: README: Not found in archivetar: Exiting with failure status due to previous errors

Чтобы извлечь файлы из архива на основе шаблона подстановочных знаков, используйте переключатель –wildcards и укажите шаблон, чтобы предотвратить интерпретацию оболочки.

Например, чтобы извлечь файлы, имена которых заканчиваются на .js(файлы Javascript), вы можете использовать:

tar -xf archive.tar –wildcards '*.js'

Добавление файлов в существующий архив

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

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

tar -rvf archive.tar newfile

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

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

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

tar –delete -f archive.tar file1

Вывод

К настоящему времени у вас должно быть хорошее понимание того, как создавать и извлекать архивы tar.

Источник: https://andreyex.ru/operacionnaya-sistema-linux/sozdanie-i-izvlechenie-arhivov-s-pomoshhyu-komandy-tar-v-linux/

Архивирование файлов в Linux

Как создать архив tar

В наши дни мы сталкиваемся с файлами архивов очень часто и на всех платформах: Windows, Mac или Linux. Это могут быть программы, резервные копии систем или баз данных или просто архив файлов. Нам также часто приходится создавать свои архивы в Linux, чтобы передать несколько файлов друзьям или загрузить на файлообменник.

В виде архивов распространяются пакеты программ, исходные коды, а также много других файлов, распространяемых на просторах интернета.

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

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

Архивирование в Linux

Важно отметить, что архивирование в linux это не одно и то же что и сжатие файлов linux.

Архивирование – это объединение нескольких небольших файлов в один, с целю более удобной последующей передачи, хранения, шифрования или сжатия. Как я уже сказал, архивация выполняется специальными утилитами.

Мы не будем трогать архивацию файлов в графическом интерфейсе, вы с ними разберетесь сами, наша тема – терминал.

Самой популярной для Linux утилитой для архивации есть tar. Она используется почти везде, для архивации исходников, упаковки пакетов.

Для сжатия используются другие утилиты, в зависимости от алгоритма сжатия, например, zip, bz, xz, lzma и т д. Сначала выполняется архивация, затем сжатие, отдельными программами.

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

Также полезной возможностью архивации есть шифрование. Но теперь давайте рассмотрим какие существуют утилиты, с помощью которых выполняется архивирование файлов linux и как ими пользоваться.

Tar

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

$ tar опцииf файл_для_записи /папка_файлами_для_архива

А теперь разберем основные опции:

  • A – добавить файл к архиву
  • c – создать архив в linux
  • d – сравнить файлы архива и распакованные файлы в файловой системе
  • j – сжать архив с помощью Bzip
  • z – сжать архив с помощью Gzip
  • r – добавить файлы в конец архива
  • t – показать содержимое архива
  • u – обновить архив относительно файловой системы
  • x – извлечь файлы из архива
  • v – показать подробную информацию о процессе работы
  • f – файл для записи архива
  • -C – распаковать в указанную папку
  • –strip-components – отбросить n вложенных папок

Теперь давайте рассмотрим архивирование файлов в Linux. Чтобы  создать архив используйте такую команду:

tar -cvf archive.tar.gz /path/to/files

А чтобы распаковать архив tar linux:

tar -xvf archive.tar.gz

Очень просто запомнить для упаковки используется опция cCreate, а для распаковки – x – eXtract.

Сжатый архив создается точно так же, только с опцией -z, это в случае, если использовалось шифрование gizp, если нужно bzip то применяется опция -j:

tar -zcvf archive.tar.gz /path/to/files

$ tar -zxvf archive.tar.gz

Например, рассмотрим как заархивировать папку в Linux:

tar -zcvf home.tar.gz ~/

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

gzip archive.tar

Также можно убрать сжатие:

gunzip archive.tar.gz

Утилиты сжатия мы рассмотрим ниже.

Чтобы добавить файл в архив используйте:

tar -rvf archive.tar file.txt

Для извлечения одного файла синтаксис тот же:

tar -xvf archive.tar file.txt

Можно извлечь несколько файлов по шаблону соответствия с помощью параметра wildcard, например, извлечем все php файлы:

tar -xvf archive.tar –wildcards '*.php'

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

tar -xvf archive.tar -C /path/to/dir

Стандартную утилиту рассмотрели, теперь кратко рассмотрим ее альтернативы. Их не так много, и большинство из них уже устаревшие.

Shar

Shar позволяет создавать самораспаковывающиеся архивы. По сути, это скрипт оболочки, и для распаковки ему необходима оболочка Bash или другая совместимая с Bourne Shell. У Shar есть несколько преимуществ, но также он потенциально небезопасный, так как архив представляет собой исполняемый файл.

Опции shar:

  • -o – сохранять архив в файл вместо стандартного вывода
  • -l – ограничить размер выходного файла
  • -L – ограничить размер выходного файла и разбить его на части
  • -n – имя архива не будет включено в заголовок
  • -a – разрешить автоматическую генерацию заголовков

Примеры использования shar для того чтобы заархивировать папку linux:

Создаем shar архив:

shar file_name.extension > filename.shar

Распаковываем shar архив:

./filename.shar

Ar

ar – утилита для создания и управления архивами. В основном используется для архивации статических библиотек, но может быть использована для создания любых архивов. Раньше использовалась довольно часто но была вытеснена утилитой tar. Сейчас используется только для создания и обновления файлов статических библиотек.

Опции Ar:

  • – d – удалить модули из архива
  • – m – перемещение членов в архиве
  • – p – напечатать специфические члены архива
  • – q – быстрое добавление
  • – r – добавить члена к архиву
  • – s – создать индекс архива
  • – a – добавить новый файл к существующему архиву

Теперь рассмотрим примеры использования. Создадим статическую библиотеку libmath.a из объектных файлов substraction.o и division.o:

ar cr libmath.a substraction.o division.o

Теперь извлечем файлы из архива:

ar x libmath.a

Таким образом, можно распаковать любую статическую библиотеку.

Cpio

cpio – означает Copy in and out (скопировать ввод и вывод). Это еще один стандартный архиватор для Linux. Активно используется в менеджере пакетов Red Hat, а также для создания initramfs. Архивация в Linux для обычных файлов с помощью этой программы не применяется.

Опции утилиты:

  • -a – сбросить время обращения к файлам после их копирования
  • -A – добавить файл
  • -d – создать каталоги при необходимости

Пример использования. Создаем cpio архив:

ls

file1.o file2.o file3.o

ls | cpio -ov > /path/to/output_folder/obj.cpio

Распаковываем архив:

cpio -idv < /path/to folder/obj.cpio

Архивирование папки linux выполняется также само.

Сжатие архивов в Linux

Как создать архив в linux рассмотрели. Теперь давайте поговорим о сжатии. Как я говорил, для сжатия используются специальные утилиты. Рассмотрим кратко несколько из них

Gzip

Чаще всего применяется Gzip. Это стандартная утилита сжатия в Unix/Linux. Для декомпрессии используется gunzip или gzip -d Сначала рассмотрим ее синтаксис:

$ gzip опции файл

$ gunzip опции файл

Теперь разберем опции:

  • -c – выводить архив в стандартный вывод
  • -d – распаковать
  • -f – принудительно распаковывать или сжимать
  • -l – показать информацию об архиве
  • -r – рекурсивно перебирать каталоги
  • -0 – минимальный уровень сжатия
  • -9 – максимальный уровень сжатия

Примеры использования вы уже видели в описании утилиты tar. Например, выполним сжатие файла:

gzip -c файл > архив.gz

А теперь распакуем:

gunzip -c архив.gz

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

Bzip

bzip2 – еще одна альтернативная утилита сжатия для Linux. Она более эффективная чем gzip, но работает медленнее. Для распаковки используйте утилиту bunzip2.

Описывать опции bzip2 я не буду, они аналогичны gzip. Чтобы создать архив в Linux используйте:

 bzip2 file

В текущем каталоге будет создан файл file.bz2

Lzma

Новый и высокоэффективный алгоритм сжатия. Синтаксис и опции тоже похожи на Gzip. Для распаковки используйте unlzma.

Xz

Еще один высокоэффективный алгоритм сжатия. Обратно совместимый с Lzma. Параметры вызова тоже похожи на Gzip.

Zip

Кроссплатформенная утилита для создания сжатых архивов формата zip. Совместимая с Windows реализациями этого алгоритма. Zip архивы очень часто используются для обмена файлами в интернете. С помощью этой утилиты можно сжимать как файлы, так и сжать папку linux.

Синтаксис утилиты:

$ zip опции файлы

$ unzip опции архив

Опции утилиты:

  • -d удалить файл из архива
  • -r – рекурсивно обходить каталоги
  • -0 – только архивировать, без сжатия
  • -9 – наилучший степень сжатия
  • -F – исправить zip файл
  • -e – шифровать файлы

Чтобы создать Zip архив в Linux используйте:

zip -r /path/to/files/*

А для распаковки:

unzip archive.zip

Как видите архивирование zip в Linux не сильно отличается от других форматов.

Выводы

Источник: https://losst.ru/arhivatsiya-v-linux

Очень просто
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: