В большинстве случае архивы позволяют эффективно сжать данные, экономя место файловой системы, а также служат удобным способом хранения информации. С архивами можно взаимодействовать как через графический интерфейс, так и через консоль. Ниже будет рассмотрен именно второй вариант, работа на сервере, подключенного через SSH, проводится через командную строку, далее будут приведены консольные инструменты для архивирования.
Распространённые форматы архивов
- TAR (.tar) – популярный формат архивирования файлов на Unix-системах и одноименная программа для работы с взаимосвязанными форматами архивов. Для сжатия использует внешние утилиты — gzip, bzip2, lzip и другие. В архив, при создании, может записываться дополнительная информация. Например, о владельце и структуре каталогов.
- GZ (.tar.gz / .tgz / .tar.gzip) – формат архива, выполняющий сжатие данных с помощью утилиты tar (для одного файла) и связки утилит gzip + tar (для нескольких файлов). Отличительная особенность — умение работать с непрерывным потоком данных. Поэтому GZ считается оптимальным инструментом для сжатия интернет-трафика.
- BZIP2 (.tar.bz2 / .tar.bzip2 / .tbz2 / .tb2 / .tbz) – бесплатная утилита для компрессии данных с высоким качеством. В основном применяется на Unix платформах. По сравнению с GZ, работает медленнее и с большой нагрузкой на CPU, но эффективность сжатия выше.
- ZIP (.zip) – распространённый тип архивов на Windows системах, позволяющий сжимать файлы и каталоги с использованием разных алгоритмов. Данный формат поддерживается почти всеми ОС, включая Windows, Mac OS X и Unix/Lin. Есть возможность создания самораспаковывающегося архива в виде исполняемого SFX-файла.
- RAR (.rar) – популярный инструмент работы с архивацией на ОС семейства Windows. Аналог формата Zip. Многоформатный архиватор распространяется в виде программы WinRAR с графическим интерфейсом. Важные особенности — возможность восстановить часть данных, создание многотомных архивов.
Работа с архивами TAR, GZ, BZIP2
Синтаксис команды
Чтобы заархивировать /разархивировать файлы в TAR, GZ, BZIP2, команда составляется по аналогичной схеме. Делается это следующим образом (на примере TAR):
Installing .tar.gz (or .tar.bz2) files in Xubuntu
Основные аргументы
- -c – создать архив.
- -f – вывести имя или путь до архива.
- -t – показать файлы в архиве (применяется при уже созданном архиве).
- -v – показать обрабатываемые файлы.
- -a – сжать или извлечь данные из архива с автоматическим выбором утилиты (gzip, bzip и т.д.), в зависимости от указанного расширения. Например, если файл называется «file.tar.gz», то к архиву автоматически будет применено сжатие с помощью gzip.
- -x – извлечь данные из архива.
Создание архива TAR
tar -cfv /var/www/mysite.tar /var/www/html/mysite
Извлечение данных из архива TAR
Пример извлечения данных в текущую директорию:
tar -xfv /var/www/mysite.tar
Пример извлечения данных в определённую директорию:
How to easily install tar.bz2 files in any Linux computer ?
tar -xfv /var/www/mysite.tar -С /var/www/html/mysite
Создание архива GZ
tar -cfva /var/www/mysite.tar.gz /var/www/html/mysite
Извлечение данных из архива GZ
Пример извлечения данных в текущую директорию:
tar -xfva /var/www/mysite.tar.gz
Пример извлечения данных в определённую директорию:
tar -xfva /var/www/mysite.tar.gz -C /var/www/html/mysite
Создание архива BZ2
tar -cfva /var/www/mysite.tar.bz2 /var/www/html/mysite
Извлечение данных из архива BZ2
Пример извлечения данных в текущую директорию:
tar -xfva /var/www/mysite.tar.bz2
Пример извлечения данных в определённую директорию:
tar -xfva /var/www/mysite.tar.bz2 -C /var/www/html/mysite
Работа с ZIP-файлами
Подготовка
Для работы с данным типом архивов будут использоваться программы ZIP и UNZIP. На некоторых дистрибутивах данные утилиты отсутствуют, поэтому перед работой нужно выполнить инсталляцию соответствующих пакетов.
CentOS
sudo yum insatall zip unzip -y
Debian/Ubuntu
sudo apt-get install zip unzip -y
Создание архива ZIP
Синтаксис
zip /var/www/mysite.zip /var/www/html/mysite
Извлечение данных из архива ZIP
Синтаксис
unzip -d
Если не указывать аргумент «-d», то файлы будут распакованы в директорию с архивом, указанным в команде.
unzip /var/www/mysite.zip -d /var/www/html/mysite
Работа с RAR архивами
Подготовка
Для работы с RAR архивами потребуется программа UNRAR, отсутствующая по умолчанию на некоторых дистрибутивах. Для ее установки, в терминал вводятся следующие команды.
CentOS
sudo yum install unrar rar -y
Debian/Ubuntu
sudo apt-get install unrar rar -y
Создание архива RAR
Синтаксис
Чтобы заархивировать каталог полностью (со всеми вложенными папками и файлами), нужно добавить ключ «-r». Команда будет выглядеть так:
rar -r
rar -r /var/www/mysite.rar /var/www/html/mysite
Извлечение данных из архива RAR
Синтаксис
unrar x
unrar x /var/www/mysite.rar /var/www/html/mysite
Надежный хостинг для сайта. 14 дней — бесплатно!
Как распаковать (разархивировать) файл Tar Bz2
Команда tar позволяет создавать и извлекать архивы tar. Он поддерживает широкий спектр программ сжатия, таких как gzip, bzip2, lzip, lzma, lzop, xz и compress.
Bzip2 — один из самых популярных алгоритмов сжатия файлов tar. По соглашению, имя tar-архива, сжатого с помощью bzip2, оканчивается на .tar.bz2 или .tbz2 .
В этом руководстве мы объясним, как распаковать (или разархивировать) архивы tar.bz2 и tbz2 с помощью команды tar .
Извлечение файла tar.bz2
В большинстве дистрибутивов Linux и macOS по умолчанию предустановлена утилита tar .
Чтобы извлечь файл tar.bz2, используйте параметр —extract ( -x ) и укажите имя файла архива после параметра -f :
tar -xf archive.tar.bz2
Команда tar автоматически определяет тип сжатия и извлекает архив. Эту же команду можно использовать для извлечения архивов tar, сжатых с помощью других алгоритмов, таких как .tar.gz или .tar.xz .
Если вы пользователь рабочего стола и командная строка вам не подходит, вы можете использовать файловый менеджер. Чтобы распаковать (разархивировать) файл tar.bz2, просто щелкните правой кнопкой мыши файл, который вы хотите распаковать, и выберите «Извлечь». Пользователям Windows потребуется инструмент под названием 7zip для извлечения файлов tar.bz2.
Для более подробного вывода используйте параметр -v . Эта опция указывает tar отображать имена файлов, извлекаемых на терминале.
tar -xvf archive.tar.bz2
По умолчанию tar извлекает содержимое архива в текущий рабочий каталог . Используйте —directory ( -C ) для извлечения архивных файлов в определенный каталог:
Например, чтобы извлечь содержимое архива в /home/linuxize/files , введите:
tar -xf archive.tar.bz2 -C /home/linuxize/files
Извлечение определенных файлов из файла tar.bz2
Чтобы извлечь определенный файл (ы) из файла tar.bz2, добавьте разделенный пробелами список имен файлов, которые нужно извлечь, после имени архива:
tar -xf archive.tar.bz2 file1 file2
При извлечении файлов вы должны —list их точные имена, включая путь, как напечатано при использовании —list ( -t ).
Извлечение одного или нескольких каталогов из архива аналогично извлечению нескольких файлов:
tar -xf archive.tar.bz2 dir1 dir2
Если вы попытаетесь извлечь файл, которого нет в архиве, появится сообщение об ошибке, подобное приведенному ниже:
tar -xf archive.tar.bz2 README
tar: README: Not found in archive tar: Exiting with failure status due to previous errors
Параметр —wildcards позволяет извлекать файлы из файла tar.bz2 на основе шаблона подстановки. Шаблон должен быть заключен в кавычки, чтобы оболочка не могла его интерпретировать.
Например, чтобы извлечь только файлы, имена которых заканчиваются на .md (файлы Markdown), вы должны использовать:
tar -xf archive.tar.bz2 —wildcards ‘*.md’
Извлечение файла tar.bz2 из стандартного ввода-вывода
При извлечении сжатого файла tar.bz2 путем чтения архива со стандартного ввода (обычно через конвейер) вы должны указать параметр распаковки. Параметр -j сообщает tar что файл сжат с помощью bzip2.
В приведенном ниже примере мы загружаем исходники Vim с помощью команды wget и перенаправляем их вывод в команду tar :
wget -c ftp://ftp.vim.org/pub/vim/unix/vim-8.1.tar.bz2 -O — | sudo tar -xj
Если вы не укажете вариант декомпрессии, tar покажет вам, какой вариант вам следует использовать:
tar: Archive is compressed. Use -j option tar: Error is not recoverable: exiting now
Листинг файла tar.bz2
Чтобы —list список содержимого файла tar.bz2, используйте параметр —list ( -t ):
tar -tf archive.tar.bz2
Результат будет выглядеть примерно так:
file1 file2 file3
Если вы добавите параметр —verbose ( -v ), tar выведет дополнительную информацию, такую как владелец, размер файла, временная метка и т. Д.
tar -tvf archive.tar.bz2
-rw-r—r— linuxize/users 0 2019-02-15 01:19 file1 -rw-r—r— linuxize/users 0 2019-02-15 01:19 file2 -rw-r—r— linuxize/users 0 2019-02-15 01:19 file3
Выводы
Файл tar.bz2 представляет собой архив Tar, сжатый с помощью Bzip2. Чтобы извлечь файл tar.bz2, используйте команду tar -xf за которой следует имя архива.
Если у вас есть вопросы, оставьте комментарий ниже.
Источник: routerus.com
Распаковка [tar|gz|tgz|bz2|tbz2|zip|gz|rar|Z|7z] архивов в Unix/Linux
Набиваю сайт полезными статьями. Некоторые люди забывают как можно распаковать тот или иной архив. Я расскажу как можно использовать различные инструменты для распаковки tar|gz|tgz|bz2|tbz2|zip|gz|rar|Z|7z архивов в Unix/Linux.
Распаковка [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
Распаковка gz архивов в Unix/Linux
Чтобы распаковать, используйте:
$ 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
Распаковка tgz архивов в Unix/Linux
Чтобы распаковать, используйте:
$ tar xvzf my_archive.tar.tgz
Распаковка bz2 архивов в Unix/Linux
Чтобы распаковать, используйте:
$ 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, то следующие команды помогут вам при распаковки.
Распаковка zip архивов в Unix/Linux
Чтобы распаковать, используйте:
$ unzip my_archive.zip
Распаковка gz архивов в Unix/Linux
Чтобы распаковать, используйте:
$ gunzip my_archive.gz
Распаковка rar архивов в Unix/Linux
Чтобы распаковать, используйте:
$ unrar x my_archive.rar
Распаковка bz2 архивов в Unix/Linux
Чтобы распаковать, используйте:
$ bunzip2 my_archive.bz2
Распаковка Z архивов в Unix/Linux
Чтобы распаковать, используйте:
$ uncompress my_archive.Z
Распаковка 7z архивов в Unix/Linux
Чтобы распаковать, используйте:
$ 7z x my_archive.7z
Извлечение Архивов с помощью Shell Функции
Чтобы не запоминать какой ключ использовать при распаковки архивов, можно добавить функцию для этого. Открываем .bashrc или .zshrc на вашей ОС:
$ vim ~/.bashrc
$ vim ~/.zshrc
И в самый конец, прописываем:
# extract archives extract () < if [ -f $1 ] ; then # display usage if no parameters given echo «Usage: extract .» case $1 in *.tar.bz2) tar xvjf «$1» ;; *.tar.gz) tar xvzf «$1» ;; *.tar.xz) tar xvJf «$1» ;; *.lzma) unlzma «$1» ;; *.bz2) bunzip2 «$1» ;; *.rar) rar x «$1» ;; *.gz) gunzip «$1» ;; *.tar) tar xvf «$1» ;; *.tbz2) tar xvjf «$1» ;; *.tgz) tar xvzf «$1» ;; *.zip) unzip «$1» ;; *.xz) unxz «$1» ;; *.Z) uncompress «$1» ;; *.7z) 7z x «$1» ;; *) echo «don’t know how to extract ‘$1’. » ;; esac else echo «‘$1’ is not a valid file!» fi >
Перезагружаем оболочку bashrc :
$ . ~/.bashrc
$ source ~/.bashrc
PS: Если используете zsh, то чтобы перезапустить ее. Закройте и откройте ваш терминал.
Использование довольно простое, например:
$ extract my_archive.rar
$ extract my_archive.tar.gz2
$ extract my_archive.7z
Запаковать архив с помощью Shell Функции
Открываем .bashrc или .zshrc на вашей ОС:
$ vim ~/.bashrc
$ vim ~/.zshrc
И в самый конец, прописываем:
# pack directories function pack() < target=$case $1 in gz) tar czvf $.tar.gz $target ;; bz) tar cjvf $.tar.bz2 $target ;; xz) tar cJvf $.tar.xz $target ;; 7z) 7zr a $.7z $target ;; rar) rar a $.rar $target ;; zip) zip -r $.zip $target ;; *) echo «Usage: pack [gzip|bzip2|xz|7z|rar|zip] [target]» ;; esac >
Перезагружаем оболочку bashrc :
$ . ~/.bashrc
$ source ~/.bashrc
PS: Если используете zsh, то чтобы перезапустить ее. Закройте и откройте ваш терминал.
Использование довольно простое, например:
$ pack gz /some_dir
А у меня все, тема «Распаковка [tar|gz|tgz|bz2|tbz2|zip|gz|rar|Z|7z] архивов в Unix/Linux» завершена.
This entry was posted in Debian’s, FreeBSD, Kali Linux, MacOS, RHEL’s. Bookmark the permalink.