Чтобы решить эту проблему, разработчики разработали алгоритмы сжатия и инструменты, способные сжимать данные в реальном времени, уменьшая размер и требуемую вычислительную мощность. Одним из таких инструментов является Zstandard, широко известный как Zstd.
Zstd - это бесплатный алгоритм сжатия в реальном времени с открытым исходным кодом, разработанный Янном Коллектом, сотрудником Facebook. Zstd очень быстрый и предлагает отличную степень сжатия. Это алгоритм сжатия без потерь, написанный на C, но имеет реализации API на других популярных языках программирования, таких как Python, Java, C #, JavaScript и многих других. Он также обеспечивает функции сжатия и распаковки в памяти.
Чтобы проверить, поддерживает ли Zstd желаемый язык, проверьте приведенный ниже ресурс:
https: // facebook.github.io / zstd /
Если вы хотите посмотреть информацию о сравнительном тестировании Zstd, воспользуйтесь ссылкой ниже:
https: // github.com / facebook / zstd
Из этого туториала Вы узнаете, как скомпилировать и установить инструмент Zstd в Linux, а затем использовать его для сжатия и распаковки данных.
Как установить Zstd
Чтобы использовать Zstd, нам нужно установить его, скомпилировав из исходников. В зависимости от используемой системы и конфигурации вам может потребоваться установить зависимости и инструменты для успешного выполнения компиляции.
Начните с обновления вашей системы и установки GNU make с помощью команды:
sudo apt-get updatesudo apt-get upgrade
sudo apt-get -y установить build-essential wget tar
После того, как у нас будут установлены все инструменты, мы можем загрузить исходные файлы и скомпилировать их. Начните с перехода к тому месту, где у вас есть разрешения на чтение, запись и выполнение. ~ / Рабочий стол
cd ~ / Рабочий столЗатем используйте wget для загрузки файлов в каталог.
wget https: // github.com / facebook / zstd / релизы / скачать / v1.4.9 / zstd-1.4.9.деготь.gzТеперь разархивируйте загруженный файл и перейдите в каталог, используя следующие команды:
tar xvf zstd-1.4.9.деготь.gzcd zstd-1.4.9
Заключительные шаги - установить Zstd с помощью make и make install внутри каталога Zstd.
sudo makesudo make install
После успешного завершения компиляции и установки вы можете начать использовать Zstd в своей системе для сжатия и распаковки файлов.
Как использовать Zstd
Zstd вообще не отказывается от популярных методов сжатия и декомпрессии. Хотя базовая технология и реализация отличаются от других инструментов, сжатие файла с помощью Zstd похоже на синтаксис tar и gzip.
Как сжать файл
Чтобы сжать файл, вызовите команду zstd, за которой следует флаг -z, который сообщает zstd о необходимости сжатия и, наконец, имя файла для сжатия.
Например, приведенная ниже команда сжимает файл резервной копии системы в .zst файл.
$ sudo zstd -z резервное копирование системыВывод команды, как показано ниже:
резервная система: 100.00% (1821109 => 1821164 байт, резервная копия системы.zst)$ ls резервное копирование системы
Вы должны увидеть файл с .zst как:
резервное копирование системы.zstПосле выполнения команды файл сжимается и создает имя файла .zst файл, который можно распаковать.
Сжать и удалить исходный файл
Как видно из приведенной выше команды, исходный файл не удаляется по умолчанию при сжатии. Вы можете указать удаление исходных файлов с помощью флага -rm:
$ sudo zstd -z --rm system-backupрезервная система: 100.00% (1821109 => 1821164 байт, резервная копия системы.zst)
$ ls
резервное копирование системы.zst
Указание флага -rm автоматически удаляет исходный файл.
Получить информацию о файле
Чтобы отобразить связанную информацию о сжатом файле Zstd, вы можете использовать флаг -l, за которым следует имя файла. Отображаемая информация включает размер файла, степень сжатия и контрольную сумму файла
$ zstd -lv резервное копирование системы.zst*** Интерфейс командной строки zstd 64-бит v1.4.9, Ян Колле ***
резервное копирование системы.zst # Zстандартных кадров: 1
Размер окна: 1.74 МБ (1821109 B)
Сжатый размер: 1.74 МБ (1821164 B)
Размер в распакованном виде: 1.74 МБ (1821109 B)
Соотношение: 1.0000
Проверить: XXH64
Укажите уровень сжатия
Чтобы явно указать уровень сжатия, используйте -, где уровень - это значение в диапазоне от 1 до 19. Уровень сжатия по умолчанию - 3. Вы также можете разблокировать более высокие уровни сжатия, я.е., 20-22 уровень.
ПРИМЕЧАНИЕ: Чем выше уровень сжатия, тем выше потребление памяти.
Например, чтобы сжать файл с уровнем сжатия 10, используйте команду:
zstd -z -10 --rm system-backupУкажите скорость сжатия.
Zstd также позволяет вам установить скорость сжатия в диапазоне от 1 до. Скорость сжатия обратно пропорциональна степени сжатия. Скорость сжатия по умолчанию - 1, и чем выше значение, тем выше скорость сжатия.
Например, чтобы использовать максимальную скорость сжатия, используйте команду:
sudo zstd -z --fast = 10 резервное копирование системыУкажите формат сжатия
Вы также можете указать формат сжатия, который будет использоваться, если вам не нравится сжатие zst по умолчанию. Форматы включают zstd, gzip, xz, lzma и lz4.
Используйте флаг -format и укажите формат как:
zstd -z --format = gzip резервное копирование системыСжать список файлов
Предположим, у вас есть список файлов, которые вы хотите сжать сразу. Zstd позволяет передавать файл, содержащий список файлов, и рекурсивно сжимает их.
Например, список файлов.txt, содержащий файлы
/ Главная / пользователь / MySQL-резервное копирование/ резервные копии / конфигурация
/ главная / Рабочий стол / медиа
/ sync / 2021 / пользователи
После сохранения файла вы можете передать список в Zstd со всеми другими параметрами для работы с файлами.
sudo zstd -z -v --rm --filelist list.текстЭта команда сжимает все файлы, указанные в текстовом файле, и удаляет их по завершении.
Распаковать файл
Чтобы распаковать файл, вы можете использовать флаг -d с командой zstd или просто использовать команду unzstd для распаковки.
Например:
sudo unzstd резервное копирование системы.zstsudo zstd -d резервное копирование системы.zst
Проверить целостность файла
Чтобы проверить целостность сжатого файла zst, используйте флаг -t, как показано в следующей команде:
sudo zstd -t резервное копирование системы.zstЗаключение
Как видно из примеров, Zstd - это мощный алгоритм сжатия с множеством вариантов использования. Чтобы узнать больше о том, как это работает и как его реализовать, посетите страницу руководства и поэкспериментируйте.
Спасибо за прочтение.