POSIX tar 档案包含 POSIX 标头作为名为@PaxHeader
. 7zip 尽职尽责地提取它们,它们都发生了冲突,因为它们的名称都相同。7z 然后抱怨文件正在使用,并以错误结束。它确实提取了其他文件,并且扩展的标题在 Windows 上无论如何都没有用。
.tar.xz
在 Windows 上构建 Qt 时,在提取 Qt 档案的上下文中出现了这个问题。这些.tar.xz
文件比文件更紧凑.zip
,它有助于减少 CI 环境中的负载,其中 Qt 可能经常被下载和重建。
有没有办法解决这个问题?
使用“Git for Windows”安装的 tar.exe 可以处理 POSIX tarball。
许多 tar.exe 和其他可以处理 tarball 的压缩程序(如 7-zip)有时(并非总是)会因包含 Paxheaders 的存档而失败。在大多数程序中,有一些参数使得它很可能在提取 POSIX tarball 时检查错误。可能的错误是缩短的文件名和没有扩展名的文件名(可能更多)。
“Git for Windows”中的 tar.exe 可以“独立”使用,即在 git-bash 之外的 Windows 命令文件或提示符下使用。最佳解决方案是使用安装的完整路径:
根据您的安装,您的 git 安装路径可能会有所不同。请务必使用正确的 tar.exe。
或者
可能有助于弄清楚。
当与 一起列出时
7z l
,这些.tar
档案包含大量同名文件,称为.\.\@PaxHeader
. 将此文件名添加到为 7z 提供的排除列表可解决该问题。排除项可以在命令行上提供,即
"-x.\.\@PaxHeader"
,也可以在排除列表文件中提供,例如[email protected]
,my.excludes
文件至少包含该.\.\@PaxHeader
行。