| Title | 📦 TAR + Zstandard (zstd) — Compression | ||||
|---|---|---|---|---|---|
| Group | Files & Archives | ||||
| Icon | 📦 | ||||
| Order | 1 | ||||
| tags |
|
Zstandard (zstd) is a modern, high-performance compression algorithm developed by Facebook (Meta). When combined with tar, it provides an excellent balance of compression speed and ratio, significantly outperforming traditional tools like gzip and bzip2. Zstd supports adjustable compression levels (1–19), multi-threaded compression, and streaming operations.
Что это: Zstandard (zstd) — современный высокопроизводительный алгоритм сжатия, разработанный Facebook (Meta). В сочетании с tar обеспечивает отличный баланс скорости и степени сжатия, значительно превосходя традиционные инструменты вроде gzip и bzip2. Поддерживает настраиваемые уровни сжатия (1–19), многопоточность и потоковые операции.
Common use cases / Типичные случаи использования:
- High-speed backups of large datasets / Высокоскоростное резервное копирование больших данных
- Container and VM image compression / Сжатие образов контейнеров и ВМ
- Log archival with minimal CPU overhead / Архивирование логов с минимальной нагрузкой на CPU
- CI/CD artifact compression / Сжатие артефактов CI/CD
- Real-time streaming compression / Потоковое сжатие в реальном времени
Status / Статус: ✅ Actively maintained, rapidly gaining adoption. Becoming the de facto modern replacement for gzip in many Linux distributions (e.g., Fedora uses zstd for RPM packages, Arch Linux uses it for package compression). Supported in GNU tar 1.31+ (2019), Linux kernel (since 4.14), and most modern tools.
See also: TAR cheatsheet for general tar usage, ZIP/7z/ZSTD cheatsheet for standalone zstd usage.
- Description
- Installation
- Basic Commands
- Compression Levels
- Advanced Usage
- Backup Operations
- Best Practices
- Documentation Links
# Debian/Ubuntu
sudo apt install zstd # Install zstd / Установить zstd
# RHEL/Fedora
sudo dnf install zstd # Install zstd / Установить zstd
# Arch Linux
sudo pacman -S zstd # Install zstd / Установить zstd
# Verify installation
zstd --version # Show zstd version / Версия zstd
tar --version # Ensure GNU tar 1.31+ / Убедиться в GNU tar 1.31+Note
The --zstd flag requires GNU tar 1.31+ (2019). For older versions, use -I zstd instead.
Флаг --zstd требует GNU tar 1.31+ (2019). Для старых версий используйте -I zstd.
tar -I zstd -cvf <ARCHIVE>.tar.zst <DIR>/ # Pack dir → .tar.zst / Упаковать dir → .tar.zst
tar -I unzstd -xvf <ARCHIVE>.tar.zst # Extract .tar.zst / Распаковать .tar.zsttar --zstd -cvf <ARCHIVE>.tar.zst <DIR>/ # Pack with --zstd / Упаковать с --zstd
tar --zstd -xvf <ARCHIVE>.tar.zst # Extract / Распаковать| Method | Compatibility (EN / RU) | Advantage / Преимущество |
|---|---|---|
-I zstd |
All GNU tar versions / Все версии GNU tar | Works on older systems / Работает на старых системах |
--zstd |
GNU tar 1.31+ | Cleaner syntax / Более чистый синтаксис |
tar -a |
GNU tar 1.31+ | Auto-detect by extension / Автоопределение по расширению |
tar -I zstd -tvf <ARCHIVE>.tar.zst | less # List contents / Показать содержимое
tar --zstd -tvf <ARCHIVE>.tar.zst # Alternative / Альтернатива# Zstandard levels: 1-19 (default: 3)
# Higher = better compression, slower
# Lower = faster, larger filestar -I 'zstd -1' -cvf <ARCHIVE>.tar.zst <DIR>/ # Fast compression / Быстрое сжатие
tar -I 'zstd -3' -cvf <ARCHIVE>.tar.zst <DIR>/ # Balanced (default) / Сбалансированное (по умолчанию)tar -I 'zstd -19' -cvf <ARCHIVE>.tar.zst <DIR>/ # Max compression / Максимальное сжатиеtar -I zstd -cvf <ARCHIVE>.tar.zst <DIR>/ # Default (level 3) / По умолчанию (уровень 3)The key insight is that zstd at level 1 is already comparable to gzip in ratio but 3-5x faster. Level 3 (default) matches bzip2 ratio at much higher speed. Only use level 19 for archival storage where speed doesn't matter.
Ключевой момент: zstd на уровне 1 уже сопоставим с gzip по степени сжатия, но в 3-5 раз быстрее. Уровень 3 (по умолчанию) соответствует степени сжатия bzip2 при намного большей скорости. Уровень 19 для архивного хранения, где скорость не важна.
| Level | Speed | Ratio | Use Case (EN / RU) |
|---|---|---|---|
| 1 | Fastest / Быстрейший | Low / Низкое | Real-time / streaming / Потоковая передача |
| 3 | Fast / Быстрый | Good / Хорошее | Default, daily backups / По умолчанию, ежедневные бэкапы |
| 9 | Moderate / Средний | Better / Лучшее | Balanced storage / Сбалансированное хранение |
| 19 | Slow / Медленный | Best / Лучшее | Archival storage / Архивное хранение |
tar -cv <DIR>/ | zstd -T0 -19 -o <ARCHIVE>.tar.zst # Use all cores / Использовать все ядра
tar -cv <DIR>/ | zstd -T4 -o <ARCHIVE>.tar.zst # Use 4 threads / Использовать 4 потокаTip
-T0 automatically uses all available CPU cores, dramatically speeding up compression of large datasets. This is one of zstd's biggest advantages over gzip.
-T0 автоматически использует все доступные ядра CPU, значительно ускоряя сжатие больших данных. Это одно из главных преимуществ zstd над gzip.
# Create archive from stream
tar -cv <DIR>/ | zstd -T0 -19 -o <ARCHIVE>.tar.zst
# Extract from stream
zstdcat <ARCHIVE>.tar.zst | tar -xv
zstd -dc <ARCHIVE>.tar.zst | tar -xv # Alternative / Альтернативаtar -cv <DIR>/ | zstd | ssh <USER>@<HOST> 'cat > archive.tar.zst' # Send to remote / Отправить на удалённый
ssh <USER>@<HOST> 'zstdcat archive.tar.zst' | tar -xv # Extract from remote / Распаковать с удалённогоtar -cv --exclude='*.log' --exclude='node_modules' <DIR>/ | zstd -o <ARCHIVE>.tar.zst # Exclude patterns / Исключить паттерныtar -cv <DIR>/ | pv | zstd -T0 -o <ARCHIVE>.tar.zst # Show progress (requires pv) / Показать прогресс (требуется pv)# Train a dictionary on sample files
zstd --train samples/* -o dict.zstd
# Compress with dictionary
tar -cv <DIR>/ | zstd -D dict.zstd -o <ARCHIVE>.tar.zst
# Decompress with dictionary
zstd -D dict.zstd -dc <ARCHIVE>.tar.zst | tar -xvTip
Dictionary compression is highly effective for many small similar files (logs, JSON records). It can improve ratio by 2-5x for small files. Сжатие со словарём высокоэффективно для множества маленьких похожих файлов (логи, JSON-записи). Может улучшить степень сжатия в 2-5 раз.
# Fast backup
tar --zstd -cvf backup-$(date +%F).tar.zst /home/<USER>
# Maximum compression backup
tar -I "zstd -19 -T0" -cvf backup-$(date +%F).tar.zst /data
# Extract
tar --zstd -xvf backup-$(date +%F).tar.zst
# Rotate old backups
find /backup/ -name "backup-*.tar.zst" -mtime +7 -deleteCaution
The find -delete command permanently removes old backups. Always verify your retention policy before enabling rotation.
Команда find -delete безвозвратно удаляет старые бэкапы. Всегда проверяйте политику хранения перед включением ротации.
tar --zstd -tvf <ARCHIVE>.tar.zst > /dev/null # Test integrity / Проверить целостность
zstd -t <ARCHIVE>.tar.zst # Test zstd layer / Проверить слой zstd- Use
--zstdfor GNU tar 1.31+ / Используйте--zstdдля GNU tar 1.31+ - Use
-T0for multi-core compression / Используйте-T0для многоядерного сжатия - Level 3 is a good balance for daily use / Уровень 3 — хороший баланс для повседневного использования
- Level 19 for long-term archival storage / Уровень 19 для долгосрочного архивного хранения
- Zstd is faster than gzip/bzip2 at comparable ratios / Zstd быстрее чем gzip/bzip2 при сопоставимых коэффициентах
- Always verify archives after creation / Всегда проверяйте архивы после создания
| Format | Speed | Ratio | Description (EN / RU) |
|---|---|---|---|
.tar.gz |
Moderate / Средняя | ~2.5x | gzip (slower, widely compatible) / gzip (медленнее, широко совместим) |
.tar.bz2 |
Slow / Медленная | ~3x | bzip2 (slow, good compression) / bzip2 (медленный, хорошее сжатие) |
.tar.xz |
Very slow / Очень медленная | ~4x | xz (very slow, best compression) / xz (очень медленный, лучшее сжатие) |
.tar.zst |
Very fast / Очень быстрая | ~3x | zstd (FAST, great compression) / zstd (БЫСТРЫЙ, отличное сжатие) |
- Zstandard Official Site: https://facebook.github.io/zstd/
- Zstandard GitHub: https://github.com/facebook/zstd
- Zstandard RFC (RFC 8478): https://tools.ietf.org/html/rfc8478
- zstd man page:
man zstdor https://man7.org/linux/man-pages/man1/zstd.1.html - GNU tar Manual (zstd support): https://www.gnu.org/software/tar/manual/
- Zstandard Benchmarks: https://facebook.github.io/zstd/#benchmarks
- See also: TAR cheatsheet, ZIP/7z/ZSTD cheatsheet