архиваторы

Инструменты для управления и диагностики системы

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

архиваторы

Непрочитанное сообщение Olej » 28 сен 2023, 21:23

Даже удивило :-o ... что за 14 лет существования форума так ине возникла тема по возникающим новым архиваторам :!: :oops:
Но эти первые (ранние) темы создавал и курировал не я...
Итак, вополняем :!:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

архиваторы

Непрочитанное сообщение Olej » 28 сен 2023, 21:37

Olej писал(а):
28 сен 2023, 21:23
Итак, вополняем
А восполняем по тому поводу, что при обновлении LMDE5 до LMDE6 (LMDE) (а это на базе Debian 12 и ожидаемо и там) - он хотел zstd, но не нашёл его, и воспользовался чем-то из старых...

Zstandard:
Zstandard — алгоритм сжатия данных без потерь, разрабатываемый с 2015 года Яном Колле (фр. Yann Collet) при поддержке корпорации Facebook; zstd — эталонная реализация алгоритма Zstandard на языке программирования Си под свободной лицензией BSD. Версия 1.0 алгоритма и реализации были представлены в конце августа 2016 года.

Сочетает словарный алгоритм сжатия данных типа LZ77 и эффективное энтропийное кодирование типа ANS (FSE — Finite State Entropy), алгоритм, сходный с кодом Хаффмана, реализующий нецелое количество бит для хранения символов.
Целью разработки является достижение коэффициентов сжатия, сопоставимых или превосходящих классический алгоритм deflate (разработан в середине 1990-х, реализован в Zip, gzip и других) при более высокой скорости как сжатия, так и распаковки. Сходные цели решают алгоритмы Brotli (Google) и LZFSE[fr] (Apple, также использует ANS FSE).

По данным LTCB, zstd 0.6 при максимальной степени сжатия показывает уровень сжатия, близкий к архиваторам boz, yxz, tornado; более высокий, чем у lza, brotli, bzip2, обеспечивая при этом очень быструю распаковку (2,2 нс/байт на Core i7-3930K при 4,5 ГГц)

Алгоритм реализует 22 уровня сжатия, различающихся скоростью и эффективностью (уровень «1» — самый быстрый, уровень «22» — более эффективный).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

архиваторы

Непрочитанное сообщение Olej » 28 сен 2023, 21:50

zstd — алгоритм быстрого сжатия данных, используемый Facebook
Zstandard (также известная как zstd) – это бесплатная программа быстрого сжатия данных в реальном времени с лучшими коэффициентами сжатия с открытым исходным кодом, разработанная Facebook. Это алгоритм сжатия без потерь, написанный на C (имеется повторная реализация на Java) — таким образом, это родная программа для Linux.

При необходимости он может обменивать скорость сжатия на более высокие степени сжатия (компромисс между скоростью сжатия и степенью сжатия можно настроить с небольшим приращением), и наоборот. Он имеет специальный режим для сжатия небольших данных, известный как сжатие словаря, и может создавать словари из любого предоставленного набора образцов. Он поставляется с утилитой командной строки для создания и декодирования файлов .zst, .gz, .xz и .lz4. файлы.

Важно отметить, что Zstandard имеет богатую коллекцию API, поддерживает почти все популярные языки программирования, включая Python, Java, JavaScript, Nodejs, Perl, Ruby, C#, Go, Rust, PHP, Switft и многие другие.
В этой же статье - куча примеров команд использования zstd.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

архиваторы

Непрочитанное сообщение Olej » 28 сен 2023, 21:53

Olej писал(а):
28 сен 2023, 21:50
В этой же статье - куча примеров команд использования zstd.
Вернуться к началу
Только не нужно спешить, как в этой статье, собирать zstd из исходников :!:
В достаточно свежих дистрибутивах он в составе по умолчанию:

Код: Выделить всё

olej@nvme:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Linuxmint
Description:    LMDE 6 (faye)
Release:        6
Codename:       faye

Код: Выделить всё

olej@nvme:~$ aptitude search zstd | grep " zstd"
p  gambas3-gb-compress-zstd - Gambas zstd compression component
p  gambas3-gb-compress-zstd:i386 - Gambas zstd compression component
p  golang-github-valyala-gozstd-dev - go wrapper for zstd (library)
p  guile-zstd - zstd bindings for guile
p  guile-zstd:i386 - zstd bindings for guile
p  librust-zstd-dev - Binding for the zstd compression library - Rust source code
p  librust-zstd-dev:i386 - Binding for the zstd compression library - Rust source code
p  librust-zstd-safe-dev - Safe low-level bindings for the zstd compression library - Rust source code
p  librust-zstd-safe-dev:i386 - Safe low-level bindings for the zstd compression library - Rust source code
p  librust-zstd-sys-dev - Low-level bindings for the zstd compression library - Rust source code
p  librust-zstd-sys-dev:i386 - Low-level bindings for the zstd compression library - Rust source code
i A zstd - быстрый алгоритм сжатия без потерь — консольная программа
p  zstd:i386 - быстрый алгоритм сжатия без потерь — консольная программа

Код: Выделить всё

olej@nvme:~$ which zstd
/usr/bin/zstd

Код: Выделить всё

olej@nvme:~$ zstd --version
*** Zstandard CLI (64-bit) v1.5.4, by Yann Collet ***

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

архиваторы

Непрочитанное сообщение Olej » 28 сен 2023, 23:54

Olej писал(а):
28 сен 2023, 21:53
В достаточно свежих дистрибутивах он в составе по умолчанию:

Код: Выделить всё

olej@R420:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Linuxmint
Description:	Linux Mint 21.2
Release:	21.2
Codename:	victoria

Код: Выделить всё

olej@R420:~$ which zstd
/usr/bin/zstd

Код: Выделить всё

olej@R420:~$ zstd --version
*** zstd command line interface 64-bits v1.4.8, by Yann Collet ***

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

архиваторы

Непрочитанное сообщение Olej » 29 сен 2023, 11:45

Olej писал(а):
28 сен 2023, 23:54
В достаточно свежих дистрибутивах он в составе по умолчанию:

Код: Выделить всё

[olej@xenix ~]$ lsb_release -a
LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	Fedora
Description:	Fedora release 38 (Thirty Eight)
Release:	38
Codename:	ThirtyEight

Код: Выделить всё

[olej@xenix ~]$ which zstd
/usr/bin/zstd

Код: Выделить всё

[olej@xenix ~]$ zstd --version
*** Zstandard CLI (64-bit) v1.5.5, by Yann Collet ***

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

архиваторы

Непрочитанное сообщение Olej » 29 сен 2023, 11:48

Olej писал(а):
29 сен 2023, 11:45
В достаточно свежих дистрибутивах он в составе по умолчанию:

Код: Выделить всё

olej@esprimop420:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 12 (bookworm)
Release:	12
Codename:	bookworm

Код: Выделить всё

olej@esprimop420:~$ which zstd
/usr/bin/zstd

Код: Выделить всё

olej@esprimop420:~$ zstd --version
*** Zstandard CLI (64-bit) v1.5.4, by Yann Collet ***

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

архиваторы

Непрочитанное сообщение Olej » 09 ноя 2023, 19:45

Опции tar (tgz) сжатия

Код: Выделить всё

olej@R420:~$ man tar
...
  Compression options
       -a, --auto-compress
              Use archive suffix to determine the compression program.

       -I, --use-compress-program=COMMAND
              Filter data through COMMAND.  It must accept the -d option, for decompression.  The argument can contain command line options.

       -j, --bzip2
              Filter the archive through bzip2(1).

       -J, --xz
              Filter the archive through xz(1).

       --lzip Filter the archive through lzip(1).

       --lzma Filter the archive through lzma(1).

       --lzop Filter the archive through lzop(1).

       --no-auto-compress
              Do not use archive suffix to determine the compression program.

       -z, --gzip, --gunzip, --ungzip
              Filter the archive through gzip(1).

       -Z, --compress, --uncompress
              Filter the archive through compress(1).

       --zstd Filter the archive through zstd(1).
...
Поддерживаемые форматы/алгоритмы компрессии определяются версией tar:

Код: Выделить всё

olej@R420:~$ tar --version
tar (GNU tar) 1.34
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Авторы программы — John Gilmore и Jay Fenlason.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

архиваторы

Непрочитанное сообщение Olej » 09 ноя 2023, 20:24

Olej писал(а):
09 ноя 2023, 19:45
Опции tar (tgz) сжатия
Среди опций/алгоритмов tgz нет, из числа часто встречаемых Архиватор 7-Zip
7-Zip — свободный файловый архиватор с высокой степенью сжатия данных благодаря формату 7z с компрессией LZMA.

Кроме формата 7z поддерживает также ZIP, GZIP, BZIP2 и TAR. Может распаковать множество других форматов, например CAB, CHM, DEB, ISO, LZMA, MSI, RAR и другие.

Формат 7z достаточно популярен среди архивов, поэтому имеет смысл иметь поддержку 7z в системе, а также создавать свои архивы в виде 7z формата, ибо сжатие с помощью 7z на 30-50% лучше, чем сжатие с помощью ZIP.

Не стоит использовать 7-Zip в целях Linux/Unix backup, потому как 7-zip не сохраняет информацию о владельцах и правах файлов (owner/group) - для этого следует использовать TAR.

В Ubuntu можно использовать консольный порт 7-Zip под POSIX системы: p7zip.
В ряде дистрибутивов устанавливается и по умолчанию (или может быть стандартно установлен):

Код: Выделить всё

olej@R420:~$ aptitude search 7z
p   7zip                                                                                     - 7-Zip file archiver with a high compression ratio                                                 
p   i7z                                                                                      - reporting tool for i7, i5, i3 CPUs                                                                
v   libocsipersist-ocaml-dev-p7z83                                                           -                                                                                                   
v   libocsipersist-ocaml-p7z83                                                               -                                                                                                   
i   p7zip                                                                                    - архиватор 7zr с высокой степенью сжатия (облегчённая версия)                                      
i   p7zip-full                                                                               - Архиватор форматов 7z и 7za с высокой степенью сжатия                                             
p   p7zip-rar                                                                                - несвободный модуль rar для p7zip                                                                  
p   python-py7zr-doc                                                                         - pure Python 7-zip library (documentation)                                                         
i A python3-py7zr                                                                            - pure Python 7-zip library                           

Код: Выделить всё

olej@R420:~$ apt content p7zip-full | grep /7z
/usr/bin/7z
/usr/bin/7za
/usr/lib/p7zip/7z
/usr/lib/p7zip/7za
/usr/lib/p7zip/7zCon.sfx
/usr/lib/p7zip/7z.so
/usr/share/doc/p7zip/DOC/7zC.txt.gz
/usr/share/doc/p7zip/DOC/7zFormat.txt.gz
/usr/share/doc/p7zip/DOC/MANUAL/general/7z.htm
/usr/share/man/man1/7z.1.gz
/usr/share/man/man1/7za.1.gz

Код: Выделить всё

olej@R420:~$ dpkg -l p7zip-full
Желаемый=неизвестно[u]/установить[i]/удалить[r]/вычистить[p]/зафиксировать[h]
| Состояние=не[n]/установлен[i]/настроен[c]/распакован[U]/частично настроен[F]/
            частично установлен[H]/trig-aWait/Trig-pend
|/ Ошибка?=(нет)/требуется переустановка[R] (верхний регистр
в полях состояния и ошибки указывает на ненормальную ситуацию)
||/ Имя            Версия       Архитектура  Описание
+++-==============-============-============-=====================================================
ii  p7zip-full     16.02+dfsg-8 amd64        7z and 7za file archivers with high compression ratio

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

архиваторы

Непрочитанное сообщение Olej » 09 ноя 2023, 21:26

Olej писал(а):
09 ноя 2023, 20:24
В ряде дистрибутивов устанавливается и по умолчанию (или может быть стандартно установлен):

Код: Выделить всё

olej@R420:~$ which 7z
/usr/bin/7z

Код: Выделить всё

olej@R420:~$ 7z --help
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=ru_UA.UTF-8,Utf16=on,HugeFiles=on,64 bits,40 CPUs Intel(R) Xeon(R) CPU E5-2470 v2 @ 2.40GHz (306E4),ASM,AES-NI)

Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...]
       [<@listfiles...>]

<Commands>
  a : Add files to archive
  b : Benchmark
  d : Delete files from archive
  e : Extract files from archive (without using directory names)
  h : Calculate hash values for files
  i : Show information about supported formats
  l : List contents of archive
  rn : Rename files in archive
  t : Test integrity of archive
  u : Update files to archive
  x : eXtract files with full paths

<Switches>
...

Ответить

Вернуться в «Системные утилиты»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость