- Tar — как запаковать и распаковать tar gz и tar bz2
- Как установить, создать архив Tar и распаковать его в Windows
- Как запаковать архив tar.gz и tar.bz2 в Ubuntu, Debian, CentOS
- Как распаковать архив tar.gz и tar.bz2 Ubuntu, Debian, CentOS
- Просмотр архивов tar в Linux
- Иные возможности tar
- Создание инкрементальных и дифференциальных архивов при помощи tar в Linux
- Возможности tar
- Создание инкрементальных архивов
- Создание дифференциальных архивов
- Команда tar в Линукс
- Синтаксис
- Примеры
- Создание
- tar/gz
- tar/bz2
- Просмотр
- Распаковка
- Разархивируем tar.gz
- Разархивируем tar.bz2
- Разархивируем единичный файл
- Здесь:
- Извлекаем отдельный документ tar.gz
- Команда tar и zip в Linux
- Архивация Tar в Linux
- Создание архива TAR
- Распаковать архив TAR
- Архивация Zip в Linux
- Создание ZIP архива
- Распаковать zip архив
- Создание и извлечение архивов с помощью команды Tar в Linux
- Синтаксис командной строки
- Создание Tar Archive
- Создание архива Tar Gz
- Создание архива Tar Bz2
- Листинг архива Tar
- Извлечение архивов Tar Gz и Tar Bz2
- Добавление файлов в существующий архив
- Удаление файлов из tar-архива
- Вывод
- Архивирование файлов в Linux
- Архивирование в Linux
- Tar
- Shar
- Ar
- Cpio
- Сжатие архивов в Linux
- Gzip
- Bzip
- Lzma
- Xz
- Zip
- Выводы
Tar — как запаковать и распаковать tar gz и tar bz2
Tar — это популярный файловый архиватор в Unix/Linux системах.
Tar зачастую используется вместе с архиваторами GZip или BZip2, так как они отлично взаимодополняют друг друга: Tar не может сжимать файлы, только собирать их в одни архив, а GZip и BZip2 не могут сжимать несколько файлов одновременно, поэтому если вам нужно запаковать несколько файлов и директорий, сначала они собираются в один несжатый архив с помощью Tar, который сохранит их некоторые атрибуты, например такие, как права доступа, а затем этот архив сжимается с помощью GZip или BZip2. Весь процесс запускается одной консольной командой, про которые далее.
Как установить, создать архив Tar и распаковать его в Windows
Чтобы использовать Tar в Windows, нужно воспользоваться одним из следующих вариантов:
- Установить Far Manager.
Инструкция по созданию и распаковке архива .tar с помощью Far Manager:- Теперь просто выделяете ПКМ (правой кнопкой мыши) или кнопкой клавиатуры Insert нужные вам файлы и папки и жмёте Shift + F1, затем выбираете нужный формат (в нашем случае, TAR) и создаёте архив:Создание архива в Far ManagerПри желании, в поле Добавить к архиву можно изменить название архива, а в поле Ключи можно ввести пароль от него.
- Чтобы распаковать архив Tar, просто выделяете ПКМ или Insert нужный архив и жмёте Shift + F2Как распаковать Tar в Far ManagerВ поле Распаковать в вводится путь, куда распаковать архив. Если нужно распаковать в текущую папку, нужно оставить поле Распаковать архив пустым. Если архив запаролен, пароль вводится в поле Пароль.
- Также, можно обойтись без 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
Инкрементальные и дифференциальные архивы широко используются при резервном копировании, позволяя достичь компромисса между нужной частотой создания копий, глубиной архива и занимаемым копиями местом на устройствах хранения.
Несмотря на то, что 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 в Линукс
Многие владельцы персональных компьютеров предпочитают пользоваться операционной системой 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
Здесь:
- “x” – извлечение.
- “v” – подробный вывод информации.
- “f” – вывод результата.
Извлекаем отдельный документ tar.gz
Представим для примера, что требуется распаковать index.php из site.tar.bz2. Для этого стоит указать в командной строке:
tar -jxvf site.tar.bz2 index.php
Источник: https://www.vseprolinux.ru/tar
Команда 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:
- 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 — распаковываем архив на рабочий стол
- tar —help — вызов справки по командам и параметрам
- man tar — вызов расширенной документации
- официальная документация по команде tar — ссылка
Архивация Zip в Linux
Архиватор zip — это звезда в мире ПО (ну не считая rar) этот формат очень популярен для windows систем и он по умолчанию уже встроен в чистую сборку операционной системы, поэтому только установив виндовус вы уже можете разархивировать файлы в формате zip
но давайте перейдем к делу, в Linux и Unix системах дела обстоят по другому, это формат Tar идет по умолчанию, а вот для zip надо поставить пакет unzip
Установка:
- sudo apt-get update && apt-get upgrade
- 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 — распаковываем архив на рабочий стол
- zip —help или unzip —help — вызов справки по командам и параметрам
- man zip или man unzip — вызов расширенной документации
- официальная документация по команде zip — ссылка
Источник: https://www.nibbl.ru/ubuntu/komanda-tar-i-zip-v-linux.html
Создание и извлечение архивов с помощью команды Tar в Linux
Команда 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
В наши дни мы сталкиваемся с файлами архивов очень часто и на всех платформах: 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
Очень просто запомнить для упаковки используется опция c – Create, а для распаковки – 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