我正在尝试解压缩以前使用 zstd 压缩的folder.tar.gz,所以我这样做了:
unzstd folder.tar.gz.zst
现在,如果我尝试使用以下方法解压缩:
tar -xvf folder.tar.gz
它将解压缩某个连接在一起的文件夹中的两个大文件。
显然被压缩的路径是:/opt/local/data/file1.log
和file2.log
。
解压后,我得到data
按“file1 和 file2.log”大小连接的文件夹。
答案1
tar.gz.zstd
建议您有一个使用 gz 压缩的 tar 存档,并使用 zstd 再次压缩结果。
要确认,您可以使用file
:
$ file file.tar.gz.zstd
file.tar.gz.zstd: Zstandard compressed data (v0.8+), Dictionary ID: None
$ unzstd < file.tar.gz.zstd | file -
/dev/stdin: gzip compressed data, from Unix
$ unzstd < file.tar.gz.zstd | gunzip | file -
/dev/stdin: POSIX tar archive (GNU)
要列出存档的内容tar
,您可以使用 libarchive,bsdtar
它应该能够动态检测双重压缩和解压缩:
bsdtar tvf file.tar.gz.zstd
或者使用其他 tar 实现,手动完成:
unzstd < file.tar.gz.zstd | gunzip | tar tvf -
提取起来是一样的,只需替换t
为x
.
如果你想删除多余的压缩,你可以这样做:
unzstd file.tar.gz.zstd
并得到一个file.tar.gz
,或者做:
unzstd < file.tar.gz.zstd | gunzip | zstd > file.tar.zstd
为了得到一个file.tar.zstd
.
答案2
该文件(按顺序读取扩展名)是一个tar
压缩文件gzip
,它本身是由zstd
.例如。双压缩:gzip
内部zstd
。
这不是常见的做法,也许您自己更改了扩展名或者创建者犯了错误?
zstd
压缩文件的正确扩展名tar
是.tzst
...
我建议使用命令检查file
文件