заглянуть

Работа с TAR


    В двух словах о самом формате tar
    http://ru.wikipedia.org/wiki/Tar писал(а):
    ...в настоящее время tar используется для хранения нескольких файлов внутри одного файла, для распространения программного обеспечения, а также по прямому назначению — для создания архива файловой системы.


    Например чтобы запаковать текущую папку в tar-архив напишем
    tar -cvf foo.tar ./
    где foo.tar имя которое будет присвоено полученному архиву, а "./" указание папки

    А для распаковки этого архива будем использовать
    tar -xvf foo.tar

    Работа с TAR/GZ и TAR/BZIP2


      Tar-архив может быть дополнительно сжат одним из поддерживаемых архиваторов: gzip, bzip2 и др.
      Для указания архиватора указывается один из дополнительных параметров, например:

      запаковать gzip'ом foo.tar.gz
      tar -cvzf foo.tar.gz ./

      запаковать bzip2'ом foo.tar.bz2
      tar -cvjf foo.tar.bz2 ./

      запаковать xz
      tar -Jcvf foo.tar.xz ./

      распаковать запакованный gzip'ом foo.tar.gz
      tar -xvzf foo.tar.gz

      универсальная распаковка tar.gz tar.bz и тд
      tar -xavf foo.tar

      Запаковать несколько папок в один архив:
      tar -czvf папка.tar.gz папка1 папка2 папка3

      tar -xvzf $HOME/Downloads/архив.tar.gz -C $HOME/папка/

      Unix. tar.gz. Как разархивировать отдельную папку или файл
      При большом размере файла бэкапа не всегда есть необходимость разархивировать все файлы, вполне достаточно всего одного файла или папки.
      Для этого необходимо выполнить следующую команду:
      tar -zxvf mytar.ball.tar.gz -C /tmp dir-name

      При этом необходимо указывать путь к папке, как он сохранен в архиве. Посмотреть можно следующей командой:
      tar -ztf backup.tar.gz |grep dir-name

      Пример
      tar -zxvf mytar.ball.tar.gz -C /tmp www/domain.com/data/

      Разархивирует содержимое папки www/domain.com/data/ в папку /tmp

      Основные опции команды tar:


      https://www.dmosk.ru/miniinstruktions.php?mini=tar-unix

      -A, --catenate, --concatenate
      склеить файлы tar в один архив

      -c, --create
      создать новый архив

      -d, --diff, --compare
      найти различия между архивом и файловой системой

      --delete
      удалить из архива (не применяется к магнитным лентам!)

      -r, --append
      добавить файлы в конец архива

      -t, --list
      показать содержимое архива

      -u, --update
      добавить только новые версии файлов файлов

      -x, --extract, --get
      извлечь файлы из архива

      -j, --bzip2
      используется для создания/распаковки .bz2 файлов

      -z, --gzip, --ungzip
      используется для создания/распаковки .gz файлов

      -M, --multi-volume
      создать/показать/распаковать многотомный архив

      Другие не менее интересные опции этой очень важной команды можно найти в руководстве пользователя - man tar.


    Работа с ZIP


      Запаковать текущую папку с подпапками в zip-архив folder.zip

      zip -r folder.zip ./

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

      unzip ./folder.zip -d ./folder

      Распаковать архив c кодировкой не utf-8
      unzip -l -O cp1251 folder.zip -d ./folder
      unzip -l -O koi8-r folder.zip -d ./folder
      unzip -l -O cp866 folder.zip -d ./folder

      unzip -l folder.zip -d ./folder

      Работа с многотомными архивами tar.gz

      Допустим нам надо запаковать содержимое папки /var/www, исключив папку /var/www/test и все zip архивы, в многотомный архив с размером тома 1024 Мб. Делается это командой

      tar -czvf - --exclude=www/test --exclude='*.zip' /var/www/ | split -b 1024m - ./backup.tar.gz

      («-» после -czvf говорит tar'у выводить в stdout, чтобы потом split мог его разбить на части(а «-» в split говорит ему брать из stdin)) В результате будут созданы файлы backup.tar.gzaa, backup.tar.gzab, backup.tar.gzac ..., размер каждого 1024 Мб. Именно последние две буквы в названии архива .tar.gzaa, .tar.gzab и т.д., указывают на то, что он разбит на части.

      Склеить все части можно командой

      cat часть1 часть2 часть3 > архив.tar.gz

      Например:

      cat backup.tar.gzaa backup.tar.gzab backup.tar.gzac > backup.tar.gz

      Если все части архива находятся в одной папке, то команда для склеивания выглядит так:

      cat backup.tar.* > backup.tar.gz


    ещё примеры
    https://www.oslogic.ru/knowledge/473/shpargalka-po-arhivatoru-zip/
    Создание архива. Необходимо сделать архив всех папок и файлов из директорий /var/www/ и /etc/nginx/ кроме директории /var/www/old_site/:

    $ zip -r -9 www-archive.zip /var/www/* /etc/nginx/* -x "/var/www/old_site/*"
    где

    -r – архивировать рекурсивно
    -9 – степень сжатия от 1 до 9. 0 – “архивирование” совсем без сжатия.
    www-archive.zip – имя архива
    /var/www/* /etc/nginx/* – архивируемые директории через пробел. * – все файлы
    -x “/var/log/apt/*” – опция, позволяющая исключить указанную папку или файл из архива
    Для того, чтобы запаролить архив необходимо указать опцию -e:

    $ zip -e mypass -r -9 www-archive.zip /var/www/* /etc/nginx/* -x "/var/www/old_site/*"
    Распаковка архива. unzip обычно уже установлен в Ubuntu. Если нет – установить из репозитория.

    $ unzip www-archive.zip
    – распаковать архив в текущую директорию

    $ unzip www-archive.zip -d /temp/
    – распаковать содержимого архива в директорию /temp/

    Распаковка отдельного файла из архива.

    $ unzip www.archive.zip my-file.php
    – распаковка файла my-file.php из архива в текущую директорию

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

    $ unzip -l archive.zip
    – просмотр содержимого архива zip

    Для получения более детальной информации во время разархивирования, можно использовать опцию -v:

    $ unzip -v www-archive.zip
    Проверка целостности архива без распаковки:

    $ unzip -t archive.zip

    Работа с 7zip


      Создание многотомного архива arch.7z папки soft/

      7z a -v100m arch.7z soft/

      в результате будут созданы файлы arch.7z.001 arch.7z.002 arch.7z.003 ..., размер каждого 100 Мб (опция -v100m).

      Чтобы распаковать многотомный архив arch.7z.001, достаточно поместить все части архива в текущую папку и дать команду

      7z x arch.7z.001

      Как распаковать запароленный архив

      7z e -pПароль archive.7z

      unrar e -p"Пароль" archive.rar

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

      создание и распаковка архива с паролем через 7zip

      7za a -mhe=on -ms=on -p Documents.7z Documents/
      пароль будет запрошен системой

      7za x Documents.7z
      пароль также спросит система после ввода команды


    работа с GZIP (упаковка файлов)


      gzip test.sql – упакует, добавит gz и УДАЛИТ! файл

      gunzip test.sql.gz – распакует и УДАЛИТ! test.sql.gz

      Прочесть сжатый GZIP файл

      gzip 123.txt - упаковать текстовой файл

      zcat 123.txt.gz - прочесть его


    работа с xz


    Как упаковывать и распаковывать архивы *.xz (без tar и вместе с ним)

    sudo apt install xz-utils

    1. Упаковать файл file.txt:
    xz file.txt
    или
    xz --compress file.txt

    Получится упакованный файл file.txt.xz. Исходный файл file.txt будет удален.

    2. Распаковать файл file.txt.xz:
    unxz file.txt.xz
    или
    xz --decompress file.txt.xz

    Получится файл file.txt. Исходный архив file.txt.xz будет удален.

    3. Упаковать все файлы в текущем каталоге и всех подкаталогах:
    tar -Jcvf allfiles.tar.xz *

    Исходные файлы удаляться не будут.

    Архиватор xz умеет использовать многопоточность при упаковке. Для использования одного потока на одно физическое ядро, можно воспользоваться опцией -T0. Чтобы tar передал xz опцию использования многопоточности для упаковки файлов, команда упаковки будет выглядеть так:

    tar -cvf allfiles.tar.xz --use-compress-program='xz -T0' *

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

    tar -cvf allfiles.tar.xz --use-compress-program='xz -vT0' *

    4. Распаковать архив формата *.tar.xz:
    tar -Jxvf allfiles.tar.xz

    Исходный архив allfiles.tar.xz удален не будет.


    поиск файла по архивам


    https://man-linux.ru/man/list/zgrep/
    Поиск по шаблону “gfx” в текущем каталоге:
    zgrep -l -e gfx *
    zgrep -l -e gfx ./*


    работа с архивами в интерпретаторе Python



      $ python3
      >>> import shutil
      >>> shutil.make_archive('/home/user/каталог/имя_архива', 'zip', '/home/user/path')

      сделает архив содержимого каталога path и положит в указанном месте с указанным именем, добавив расширение сжатия (zip)
      форматы сжатия zip gztar bztar

      $ python3
      >>> import zipfile
      >>> zipfile.ZipFile('/home/user/file.zip').extractall('/home/user/tmp/new')

      распакует архив в папку new, папка будет создана, если её нет

      или просто в консоли использовать модули python:

      $ python3 -m tarfile -c $HOME/tmp/new_archiv.tar.bz2 $HOME/tmp/rt/ - создать архив
      $ python3 -m tarfile -e $HOME/tmp/new_archiv.tar.bz2 $HOME/tmp/rt/1 - распаковать архив

      аналогично для форматов tar.gz и tar.xz



    разное
    Алгоритм сжатия Хаффмана
    Что такое ZIP-бомба и почему ее не нужно бояться
    Ещё лучшая ZIP-бомба
    Защищаем сайт с помощью ZIP-бомб
    dd if=/dev/zero bs=1M count=10240 | gzip > 10G.gzip

Zip-файлы: история, объяснение и реализация
Создание инкрементальных и дифференциальных архивов при помощи tar в Linux
Работа с архиваторами (tar, zip, gz, bzip2) из консоли Linux
Использование утилиты tar по сети через SSH
https://docs.python.org/3/library/tarfile.html
http://uzverss.livejournal.com/33187.html#archive



7zip — это программа с открытым исходным кодом для архивации. Первоначально она была разработана для Windows. Эта программа может запаковывать или распаковывать большое количество форматов архивов, включая свой собственный формат 7z, а также XZ, GZIP, TAR, ZIP и BZIP2. 7zip также часто используется для извлечения RAR, DEB, RPM и ISO файлов. Кроме простого архивирования, 7zip может поддерживать шифрование AES-256, а также самораспаковывающиеся и многотомные архивы. Для систем POSIX (Linux, Unix, BSD), оригинальная программа 7zip была портирована как p7zip (сокращение от "POSIX 7zip").
Read more... )
http://zalinux.ru/?p=224


Иногда возникает необходимость просмотреть ZIP-архивы в русскоязычной кодировке. И вместо имён файлов мы видим непонятный набор — символы-крякозябвы Решение есть в виде библиотеки libnatspec0, которая поддерживает i18n и исправляет многие проблемы с устаревшими кодировками и локализациями при монтировании, работе с архивами и просмотре мультимедиа. Работает это всё в стандартном Менеджере архивов (file-roller)
Для этого добавляем репозиторий:

deb http://ppa.launchpad.net/frol/zip-i18n/ubuntu oneiric main
или
sudo apt-add-repository ppa:frol/zip-i18n && sudo apt-get update && sudo apt-get upgrade (последнее - если нужно обновить все пакеты)

и устанавливаем библиотечку libnatspec0 и архиватор p7zip. Версия lucid/maverick/oneiric тут определенно неважна, т.к. всё одинаково совместимо как на Убунту, так и на Debian с разными версиями. Запускаем Терминал, добавляем ключи и устанавливаем библиотеку и архиваторы, естественно репозитории и ключи делаем под администратором (sudo):

sudo -i

echo deb http://ppa.launchpad.net/frol/zip-i18n/ubuntu oneiric main > /etc/apt/sources.list.d/7ziprus.list
echo deb http://ppa.launchpad.net/r0lf/ppa/ubuntu oneiric main > /etc/apt/sources.list.d/7ziprus.list

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EEBB18420019065

aptitude update

aptitude install -y libnatspec0 unzip p7zip-full

для ubuntu ещё проще:

sudo add-apt-repository ppa:frol/zip-i18n
sudo apt-get update
sudo apt-get install libnatspec0 p7zip p7zip-full p7zip-rar

отсюда

если и это не помогло, то поставить старую версию unzip Ставим пакет unzip более старой версии:

archive.ubuntu.com/ubuntu/pool/main/u/unzip/unzip_5.52-10ubuntu2_i386.deb

-----------------------------------------------------------------------------

Я думаю, многие сталкивались с легендарным багом, при котором распакованные ZIP-архивы в Ubuntu содержали файлы с «кракозябрами» в имени, если это имя было написано на кириллице.
Внимание! Решение не затрагивает имена в Archive Manager (Менеджере архивов), оно актуально только для устранения косяков и нормальной распаковки ZIP через контекстное меню «Извлечь сюда» и заключается, собственно, в удалении пакета p7zip-full и установке просто p7zip.

Открываем терминал (Ctrl+Alt+T) и пишем:
sudo apt-get remove p7zip-full -y && sudo apt-get install p7zip -y

После этого можете пробовать ПКМ на архиве ZIP и Извлечь сюда, должно работать.

http://openite.com/ubuntu/bystroe-reshenie-problemy-v-ubuntu-s-kodirovkoy-zip-arhivov.html

file-roller кракозябры лечение:
sudo add-apt-repository ppa:hanipouspilot/file-rolle


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

tar -zcvf название_архива.tar.gz папка/
tar -jcvf название_архива.tar.bz2 папка/

сжатие нескольких папок:

tar -czvf название_архива.tar.gz папка1/ папка2/
tar -cjvf название_архива.tar.bz2 папка1/ папка2/

разархивирование

tar -zxvf название_архива.tar.gz
tar -jxvf название_архива.tar.bz2

проверка архива

tar -zvtf название_архива.tar.gz
tar -jvtf название_архива.tar.bz2

Иногда из tar-архивов (.tar, .tar.gz, .tar.bz2) очень больших объемов требуется извлечь несколько определенных файлов. В таких случаях разархивировать исходный tar целиком не имеет смысла
для этого необходимо перечислить нужные файлы в качестве аргументов tar после самого имени архива. Например:

tar -xf archive.tar myfile1 dir2/myfile2

Эта команда извлечет из архива archive.tar файлы myfile1 и dir2/myfile2. В случае со сжатым архивом все делается аналогичным образом — добавляются соответствующие ключи: «z» для .gz (gzip) и «j» для .bz2 (bzip2).

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

tar -tf archive.tar

для поиска нужного файла по части его названия и пути следует использовать конвеер grep или egrep

Краткая памятка по работе с архиваторами из консоли в Linux

Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 06:19 pm
Powered by Dreamwidth Studios