- Как мне распаковать архив с файлом tar.zst?
- 1 ответ
- Archiving and compression
- Archiving only
- Compression tools
- Compression only
- Archiving and compression
- Feature charts
- Decompress
- Usage comparison
- Archiving only usage
- Compression only usage
- Archiving and compression usage
- Convenience tools
- Determining archive format
- Esoteric, rare or deprecated tools
- File system compression
- Device mapper compression
- Compression libraries
- Troubleshooting
- Garbled Japanese Filenames
- See also
Как мне распаковать архив с файлом tar.zst?
Я не знаю, как мне распаковать файл с расширением tar.zst, и хотя я искал решения в Интернете, у меня не оказалось ничего полезного в этом вопросе.
1 ответ
Расширение.zst означает, что архив сжат zstd.
Команда tar имеет опцию -I (—use-compress-program), чтобы указать команду для сжатия / распаковки.
Вы можете использовать его следующим образом.
$ tar -I zstd -xvf archive.tar.zst
Распакуйте его в Терминале.
Я знаю, что не так много доступных ресурсов, но я нашел это здесь: http://manpages.org/zstd
Если у вас стандартный стек сборки cmake + gcc:
git clone https://github.com/facebook/zstd.git cd zstd/build/cmake cmake . make ./programs/zstd -d /path/to/file.zst
В macOS Mojave 10.14.3 мне не удалось указать алгоритм сжатия с помощью флага -I. Это сработало для меня;
Установите zstd с помощью brew, если он еще не установлен.
- Распаковать из.zst: unzstd filename.tar.zst или zstd -d filename.tar.zst . filename.tar будет создан.
- Список сжатых архивов: tar tf filename.tar .
- Распакуйте сжатый архив: tar xf filename.tar .
https://pypi.org/project/zstandard/
import zstandard as zstd . . . . elif filename_extension == ".zst": dctx = zstd.ZstdDecompressor() with open(submission_path_read, 'rb') as ifh, open(submission_path_save, 'wb') as ofh: dctx.copy_stream(ifh, ofh, write_size=65536)
Я нашел некоторые из этих файлов в загрузках Anaconda. После установки Anaconda я загружал дополнительные пакеты. Загруженные пакеты в моем каталоге загрузок Anaconda были zip-файлами (без расширения.zip), но у них были эти .tar.zst файлы внутри них. Это привело меня кпереполнению стека, чтобы выяснить, что это такое, что привело меня к этому вопросу. Если вы находитесь в одной лодке, то Anaconda также дает ответ.
Получается, что zstd а также unzstd исполняемые файлы также устанавливаются установщиком Anaconda, поэтому они должны быть доступны в командной строке, если вы находитесь в среде Anaconda.
Archiving and compression
The traditional Unix archiving and compression tools are separated according to the Unix philosophy:
- A file archiver combines several files into one archive file, e.g. tar.
- A compression tool compresses and decompresses data, e.g. gzip.
These tools are often used in sequence by firstly creating an archive file and then compressing it.
Of course there are also tools that do both, which tend to additionally offer encryption, error detection and recovery.
Archiving only
Name | Package | Manuals | Description |
---|---|---|---|
GNU tar | tar | tar(1) , info | Core utility for manipulating the ubiquitous tar archives (tarballs), which are used by pacman and the AUR. |
libarchive | libarchive | bsdtar(1) bsdcpio(1) | Implementation of tar and cpio that also offers a library. Used by pacman and mkinitcpio. |
ar | binutils | ar(1) | Legacy Unix archiver before tar. Today only used for creating static library files. |
cpio | cpio | cpio(1) | File archiver via stdin/stdout, supports cpio and tar formats. |
DAR | dar AUR | dar(1) | Archiver to backup large live filesystems, takes care of hard links, extended attributes, sparse files and inode types. |
Tip: Both GNU and BSD tar automatically do decompression delegation for bzip2, compress, gzip, lzip, lzma, lzop, zstd, and xz compressed archives. Only BSD tar supports lz4 natively (but GNU tar can do an equivalent with —use-compress-program=lz4 / -Ilz4 ). When creating archives both support the -a switch to automatically filter the created archive through the right compression program based on the file extension. While BSD tar recognizes compression formats based on the format, GNU tar only guesses based on the file extension.
Compression tools
Compression only
These compression programs implement their own file format.
Archiving and compression
Name | Packages | Manuals | Ext | Description |
---|---|---|---|---|
p7zip | p7zip | 7z(1) | .7z | The third-party POSIX port of 7-zip’s command-line. |
7-Zip | 7-zip AUR , 7-zip-full AUR | — | The upstream Linux version of a file archiver with a high compression ratio. | |
RAR | rar AUR , unrar | rar(1) | .rar | Both the format and the rar utility are proprietary. |
t2sz | t2sz AUR | .tar.zst .tzst | Tar archiving utility in C with member-aligned zstd-compression | |
tarlz | tarlz AUR | tarlz(1) | .tar.lz .tlz | Tar archiving utility in C++ with member-aligned lzip compression |
ZIP | zip , unzip | zip(1) , unzip(1) | .zip | Widely used outside of the Linux world. |
Unarchiver | unarchiver | unar(1) , lsar(1) | many | Command-line tool of a Mac application, supports over 40 archive formats. |
ZPAQ | zpaq AUR | zpaq(1) | .zpaq | A high compression ratio archiver written in C++, uses several algorithms. |
LHa | lhasa , lha AUR | lha(1) | .lzh (on Amiga: .lha) | LZH/LHA archiver, supports the lh7-method. |
WinAce | unace | unace(1) | .ace | Both the ACE file format and the archiving tool are proprietary. |
Feature charts
Some of the tools above are capable of handling multiple formats, allowing for fewer installed packages.
Decompress
Usage comparison
Archiving only usage
Name | Create archive | Extract archive | List content |
---|---|---|---|
tar(1) | tar cfv archive.tar file1 file2 | tar xfv archive.tar | tar -tvf archive.tar |
cpio(1) | ls file1 file2 | cpio -o > archive.cpio | cpio -i -vd < archive.cpio | cpio -t < archive.cpio |
Compression only usage
Name | Compress | Decompress | Decompress to stdout |
---|---|---|---|
bzip2(1) | bzip2 file | bzip2 -d file.bz2 | bzcat file.bz2 |
gzip(1) | gzip file | gzip -d file.gz | zcat file.gz |
lrzip(1) | lrzip file lrztar folder | lrzip -d file.lrz lrztar -d folder.tar.lrz | lrzcat file.lrz |
xz(1) | xz file | xz -d file.xz | xzcat file.xz |
Archiving and compression usage
Name | Compress | Decompress | Decompress to stdout | List content |
---|---|---|---|---|
7z(1) | 7z a archive.7z file1 file2 | 7z x archive.7z | 7z e -so archive.7z file1 | 7z l archive.7z |
rar(1) | rar a archive.rar file1 file2 | rar x archive.rar | rar p -inul archive.rar file1 | rar l archive.rar |
zip(1) , unzip(1) | zip archive.zip file1 file2 | unzip archive.zip | unzip -p archive.zip file1 | unzip -l archive.zip |
lha(1) | lha ao7 archive.lzh file1 file2 | lha x archive.lzh | minimal: lha l archive.lzh verbose: lha v archive.lzh |
Convenience tools
- atool — Script for managing file archives of various types.
- dtrx — An intelligent archive extraction tool.
- J7Z — GUI for Linux in java which attempts to simplify data compression and backup. It can create 7z, BZip2, Zip, GZip, Tar archives.
- unp — Command line tool that can unpack archives easily.
- unpack — Wrapper script for handling multiple archive formats.
- zutils — A drop-in replacement of zcat(1) / zgrep(1) / zdiff(1) in C++ to decompress gz/bz2/xz/lzip/zstd file transparently like bsdcat(1) but using user-defined utilities, usually used in combination with parallel variants of common (de)compressor like pixz(1) .
- Bash/Functions#Extract
Determining archive format
To extract an archive, its file format needs to be determined. If the file is properly named you can deduce its format from the file extension.
Otherwise you can use the file tool, see file(1) .
Esoteric, rare or deprecated tools
Name | Packages | Ext | Description |
---|---|---|---|
ARC | arc AUR | .arc, .ark | Was very popular during the early days of the dial-up BBS. Superseded by ZIP. |
ARJ | arj | .arj | An archiver used on DOS/Windows in mid-1990s. This is an open source clone. |
compress | ncompress | .Z | The de facto standard UNIX compression utility to success the Huffman-based pack(1) before gzip become a thing. |
PAR2 | par2cmdline | .par2 | Parity archiver for increased data integrity. See also Parchive. |
shar | sharutils | .shar | Creates self-extracting archives that are valid shell scripts. |
Zoo | zoo AUR | .zoo | Was mostly popular on the OpenVMS operating system before PKZIP became popular. |
File system compression
Some file systems support on-the-fly compression of file data:
- Btrfs can be configured to compress individual files, directories, or entire volumes by default.
- On ZFS, compression can be enabled on pools or file systems.
Device mapper compression
There is work being done to mainline (integrate into the Linux kernel project) the open-sourced VDO project, which provides a deduplication and compression device mapper layer in the interest of increasing storage efficiency. The following packages are available:
- vdo — Userspace tools for managing VDO volumes
- kvdo — A pair of kernel modules which provide pools of deduplicated and/or compressed block storage
Compression libraries
- Brotli — Compression algorithm for data streams using the LZ77 algorithm, Huffman coding and 2nd order context modeling.
- libzip — Provides creation and extraction of ZIP files. Used by KDE and Deepin in place of the zip/unzip tools.
- zlib — Compression library implementing the deflate compression method found in gzip and PKZIP.
- Zopfli — High compress ratio file compressor from Google, using a deflate-compatible algorithm called zopfli.
Troubleshooting
Garbled Japanese Filenames
Japanese versions of Windows encode ZIP archives with Shift-JIS. By default, these archives will suffer from mojibake filenames when extracted. To extract properly, use unzip in the command-line using the shift-jis option.
$ unzip -O shift-jis nihongo.zip