解压folder.tar.gz,里面有文件

解压folder.tar.gz,里面有文件

我正在尝试解压缩以前使用 zstd 压缩的folder.tar.gz,所以我这样做了:

unzstd folder.tar.gz.zst

现在,如果我尝试使用以下方法解压缩:

tar -xvf folder.tar.gz

它将解压缩某个连接在一起的文件夹中的两个大文件。

显然被压缩的路径是:/opt/local/data/file1.logfile2.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 -

提取起来是一样的,只需替换tx.

如果你想删除多余的压缩,你可以这样做:

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文件

相关内容