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 linux:
Очень просто запомнить для упаковки используется опция c — Create, а для распаковки — x — eXtract.
Сжатый архив создается точно так же, только с опцией -z, это в случае, если использовалось шифрование gizp, если нужно bzip то применяется опция -j:
$ tar -zxvf archive.tar.gz
Например, рассмотрим как заархивировать папку в Linux:
Хотя можно поступить по-другому, тот же архив мы получим если сначала создать обычный архив с помощью tar, а потом сжать его утилитой для сжатия, только здесь мы получаем больше контроля над процессом сжатия:
Также можно убрать сжатие:
Утилиты сжатия мы рассмотрим ниже.
Чтобы добавить файл в архив используйте:
Для извлечения одного файла синтаксис тот же:
Можно извлечь несколько файлов по шаблону соответствия с помощью параметра wildcard, например, извлечем все php файлы:
По умолчанию распаковать архив tar linux можно в текущую папку с именем архива, чтобы распаковать в нужную папку используйте ключ -C:
Стандартную утилиту рассмотрели, теперь кратко рассмотрим ее альтернативы. Их не так много, и большинство из них уже устаревшие.
Сжатие архивов в Linux
Как создать архив в linux рассмотрели. Теперь давайте поговорим о сжатии. Как я говорил, для сжатия используются специальные утилиты. Рассмотрим кратко несколько из них
Gzip
Чаще всего применяется Gzip. Это стандартная утилита сжатия в Unix/Linux. Для декомпрессии используется gunzip или gzip -d Сначала рассмотрим ее синтаксис:
$ gzip опции файл
$ gunzip опции файл
Теперь разберем опции:
- -c — выводить архив в стандартный вывод
- -d — распаковать
- -f — принудительно распаковывать или сжимать
- -l — показать информацию об архиве
- -r — рекурсивно перебирать каталоги
- -0 — минимальный уровень сжатия
- -9 — максимальный уровень сжатия
Примеры использования вы уже видели в описании утилиты tar. Например, выполним сжатие файла:
А теперь распакуем:
Но чтобы сжать папку в Linux вам придется сначала заархивировать ее с помощью tar, а уже потом сжать файл архива с помощью gzip.
Bzip
bzip2 — еще одна альтернативная утилита сжатия для Linux. Она более эффективная чем gzip, но работает медленнее. Для распаковки используйте утилиту bunzip2.
Описывать опции bzip2 я не буду, они аналогичны gzip. Чтобы создать архив в Linux используйте:
В текущем каталоге будет создан файл file.bz2
Lzma
Новый и высокоэффективный алгоритм сжатия. Синтаксис и опции тоже похожи на Gzip. Для распаковки используйте unlzma.
Zip
Кроссплатформенная утилита для создания сжатых архивов формата zip. Совместимая с Windows реализациями этого алгоритма. Zip архивы очень часто используются для обмена файлами в интернете. С помощью этой утилиты можно сжимать как файлы, так и сжать папку linux.
Синтаксис утилиты:
$ zip опции файлы
$ unzip опции архив
Опции утилиты:
- -d удалить файл из архива
- -r — рекурсивно обходить каталоги
- -0 — только архивировать, без сжатия
- -9 — наилучший степень сжатия
- -F — исправить zip файл
- -e — шифровать файлы
Чтобы создать Zip архив в Linux используйте:
А для распаковки:
Как видите архивирование zip в Linux не сильно отличается от других форматов.
Пайплайны
Как мы уже упомянали в начале статьи, tar можно использовать для потоковой упаковки/распаковки. Классический пример — это tar через ssh. «А чем scp не угодил?» — спросите вы. А тем, что tar позволяет контент сжимать перед передачей, а scp нет. Скажем мы хотим передать нашу папку test на хост 192.168.1.200, используя ssh
В данной примере мы сначала просим tar запаковать и сжать папку с использованием gz, потом передать ее на вход ssh, который затем через зашифрованный канал транслирует данные на другой хост, передавая их там местному tar для распаковки в папку, указанную вместо ${DIR}. Идеально, не правда ли?
Как установить tar.gz – архив или программу
В среде Linux, и в частности в Ubuntu, многие файлы и программы иногда поставляются в качестве архивов tar.gz. Это могут быть приложения, пакеты обновлений или же просто исполняемые файлы. Поэтому все дальнейшее описание будет приведено для операционной системы Ubuntu. Чтобы понять, как установить в Ubuntu tar.gz архив, можно для примера взять любую программу, которая поставляется с исходным кодом.
К примеру, можно скачать приложение hello, загрузка которого есть в открытом доступе. Этот продукт выполняет одну простую функцию — приветствует мир в лучших традициях первых уроков любого языка программирования. Среди представленных по адресу версий лучше выбрать посвежее.
Итак, файл скачан, но как установить tar.gz? Очень просто. В операционных системах типа Ubuntu нужно использовать терминал. Вызвать его можно сочетанием клавиш Ctrl+Alt+t. Его окно выглядит примерно так:
Для того чтобы разархивировать файл ,нужно к нему добраться. В терминале это можно сделать с помощью команды cd и нужного каталога. Например:
После ввода команды нажимается клавиша Enter, которая отправляет её на исполнение. Теперь терминал находится в одной папке со скачанным архивом hello-2.10.tar.gz. Вводится команда tar zxvf hello-2.10.tar.gz. Её результатом будет вывод на консоль списка всех распакованных файлов.
Теперь задача подходит к главному пункту в вопросе о том, как установить в Ubuntu tar.gz архив, — подготовке и компиляции.
Распаковка [tar|gz|tgz|bz2|tbz2|zip|gz|rar|Z|7z] архивов в в Unix/Linux
Если архив был сжат с помощью GZIP или BZIP2, то следующие команды помогут вам при распаковки.
Распаковка tar архивов в Unix/Linux
$ tar xvf my_archive.tar
Можно просмотреть архив и узнать содержимое:
$ tar -tvf my_archive.tar
Так же, можно извлечь указанный файл, предположим что необходимо достать some_my_archive.txt:
$ tar -xvf my_archive.tar some_my_archive.txt
Вы можете указывать путь к любому файлу в любой папке:
$ tar -xvf my_archive.tar some_folder/some_my_archive.txt
С легкостью можно достать указанную папку из вашего архива, предположим что нужно достать «my_folder»:
$ tar -xvf my_archive.tar my_folder
Чтобы распаковать, используйте:
$ tar xvzf my_archive.tar.gz
Можно просмотреть архив (сжатый с помощью GZIP) и узнать содержимое:
$ tar -ztvf my_archive.tar.gz
Так же, можно извлечь указанный файл, предположим что необходимо достать some_my_archive.txt:
$ tar -xzvf my_archive.tar.gz some_my_archive.txt
Вы можете указывать путь к любому файлу в любой папке:
$ tar -xzvf my_archive.tar.gz docs/some_my_archive.txt
С легкостью можно достать указанную папку из вашего архива, предположим что нужно достать «my_folder»:
$ tar -xzvf my_archive.tar.gz my_folder
Чтобы распаковать, используйте:
$ tar xvzf my_archive.tar.tgz
Чтобы распаковать, используйте:
$ tar xvjf my_archive.tar.bz2
Можно просмотреть архив (сжатый с помощью BZIP2) и узнать содержимое:
$ tar -jtvf tar.bz2
Так же, можно извлечь указанный файл, предположим что необходимо достать some_my_archive.txt:
$ tar -xjvf my_archive.tar.bz2 some_my_archive.txt
Вы можете указывать путь к любому файлу в любой папке:
$ tar -xjvf my_archive.tar.bz2 docs/some_my_archive.txt
С легкостью можно достать указанную папку из вашего архива, предположим что нужно достать «my_folder»:
$ tar -xjvf my_archive.tar.bz2 my_folder
Распаковка tbz2 архивов в Unix/Linux
Чтобы распаковать, используйте:
$ tar xvjf my_archive.tar.tbz2
Если архив был сжат с помощью ZIP, GUNZIP, RAR, BUNZIP2, COMPRESS или 7Z, то следующие команды помогут вам при распаковки.
Чтобы распаковать, используйте:
$ unzip my_archive.zip
Чтобы распаковать, используйте:
$ gunzip my_archive.gz
Чтобы распаковать, используйте:
$ unrar x my_archive.rar
Чтобы распаковать, используйте:
$ bunzip2 my_archive.bz2
Чтобы распаковать, используйте:
$ uncompress my_archive.Z
Команда tar и zip в Linux
Ubuntu
Нет ничего лучше для запоминания информации, чем чтение, а потом написание этой информации в тетрадь, вот и я люблю прочитать и записать информацию в свою тетрадь nibbl.ru
Сегодня речь пойдет о такой вещи как архивация, а именно упаковка и распаковка таких форматов как: tar, gzip, zip и rar в в операционных системах Unix и Linux
нашу статью разобьем на разделы, что бы была удобная навигация.
Архивация в Linux
Хоть Linux и имеет графическую оболочку и даже уже можно скачать графические пакеты для работы с самыми популярными расширениями архиваторов, мы будем рассматривать работу с архивами на уровне консоли (но если кому надо сделаем обзор пакетов для работы не через консоль)
Архивация Tar в Linux
Tar — или как мы его называли архиватором таковым не является, причина тому, логика работы данного инструмента! это всего лишь упаковщик, а если быть точнее то задача tar создать контейнер в формате tar в который она помещает выбранные вами файлы (без сжатия). Но если Вам нужно эти данные ужать или сжать для уменьшения размера архива, тогда применяются дополнительные инструменты такие как Gzip или bzip2 (вы должны были обращать внимания, что скачивая пакеты или файлы они имели странный формат name-file.tar.gz ) Все дело в том, что принцип работы инструмента по сжатию данных, работает только в однопотоковом режиме, поэтому, что бы заархивировать много файлов и их сжать нам необходимо было их упаковать в TAR (один файл), а только потом прогнать через сжатие Gzip или bzip2 поэтому эти инструменты работают как Бонни и Клайд)
Создание архива TAR
Для начала начнем с запаковки архива Tar в Linux/ubuntu, и для этого надо запомнить шаблон или синтаксис команды:
Опции для создания архива tar:
- c (create) — создать архив
- f (file) — указать имя архива
- j (bzip2) — cжать/распаковать архив дополнительно при помощи bzip2
- z (gzip) — сжать/распаковать архив дополнительно при помощи gzip
- v (verbose) — выводит список прогресса
Для создания архива tar нам необходимы только две опции c и f, но если вы хотите видеть процесс упаковки файлов, то можете добавить ключ v и тогда вы увидите на экране бегущий список файлов (так сказать «аналог» виндовому прогрессу в виде процентов)
В списке опций вы заметили два ключа j и z эти ключи используются как для сжатия в архив gzip или bzip2 если вам нужно сделать архивацию с сжатием то применяем следующую команду:
Распаковать архив TAR
рассмотрим синтаксис команды что бы распаковать или разархивировать tar архив в linux/ubunta :
Опции для создания архива tar:
- x (extract) — извлечь файлы из архива
- f (file) — указать имя архива
- j (bzip2) — cжать/распаковать архив дополнительно при помощи bzip2
- z (gzip) — сжать/распаковать архив дополнительно при помощи gzip
- v (verbose) — выводит список прогресса
- С (в верхнем регистре) — указываем альтернативное место для разархивирования файлов
Общая информация по работе с Tar
- 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:
Опции для создания архива 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 лучшее сжатие)
— данной командой мы заархивировали с сжатием папку myfile создали архив с именем archive.zip и установили пароль на архив 123
Распаковать zip архив
рассмотрим синтаксис команды что бы распаковать или разархивировать tar архив :
Опции для создания архива tar:
- d (directory) — указать директорию для разархивации
- l — вывести список файлов в архиве
- d — удалить определенный файл или каталог из уже сделанного архива
- v — показывает детальную информацию по файлам в архиве ()
Заключение
На первый взгляд вам может показаться что это все муторно и не понятно, да и зачем в наше время использовать терминал для подобных манипуляций? Но, на самом деле, работая в терминале вы можете сэкономить множество времени, так как создавая архив в терминале, вы можете в него упаковать только те файлы, которые вам необходимо. При этом, достаточно написать их названия, а используя графические версии архиваторов на это у вас может уйти немного больше времени. Да и как уже ранее говорилось, сила Linux в его терминале, и знания терминала порой очень вам может пригодится, так что не стоит его боятся.
А на этом сегодня все. Надеюсь данная статья будет вам полезна.Журнал Cyber-X