由于 @PaxHeader 文件,7zip 在提取 POSIX tar 存档时出现问题

Kub*_*ica 5 tar archiving 7-zip

POSIX tar 存档包含 POSIX 标头作为名为@PaxHeader. 7zip 尽职尽责地提取它们,并且它们都发生冲突,因为它们的名称都相同。然后 7z 抱怨该文件正在使用中,并以错误结束。它确实会提取其他文件,而且扩展标头在 Windows 上毫无用处。

在 Windows 上构建 Qt 时提取 Qt 存档时会出现此问题.tar.xz。这些.tar.xz文件比.zip文件更紧凑,有助于减少 CI 环境中的负载,在 CI 环境中,Qt 可能会经常下载和重建。

有办法解决这个问题吗?

小智 3

与“Git for Windows”一起安装的 tar.exe 可以处理 POSIX tarball。

许多 tar.exe 和其他压缩程序(例如 7-zip)也可以处理 tarball,有时(并非总是)会因包含 Paxheaders 的存档而失败。在大多数程序中,都有一些参数可以在提取 POSIX tarball 时监控错误。可能的错误是缩短的文件名和没有扩展名的文件名(可能更多)。

“Git for Windows”中的 tar.exe 可以“独立”使用,即在 Windows 命令文件中的 git-bash 之外或在提示符下使用。最佳解决方案是使用安装的完整路径:

C:\Program Files\Git\usr\bin\tar.exe -xf archive.tar.gz
Run Code Online (Sandbox Code Playgroud)

git 安装的路径可能会有所不同,具体取决于您的安装。确保使用正确的 tar.exe。

which tar.exe
Run Code Online (Sandbox Code Playgroud)

或者

where tar.exe
Run Code Online (Sandbox Code Playgroud)

可能有助于弄清楚。