Tar 无法提取特定文件

Tar 无法提取特定文件

我正在使用 Windows 中的批处理脚本提取多个.tar.gz文件。tar 文件都是不同的数据集,通常应该具有相同的目录和文件结构,只是内容不同。当我今天早上检查状态时,我注意到每个 tar 文件的某些文件都失败了。我在终端中看到的错误如下,并且对每个 tar 文件重复出现:

Folder1/data/Dictionary.dic: Can't create '\\\\?\\D:\\Full\\Path\\to the\\Folder1\\data\\Dictionary.dic'
Folder1/data/data_Dictionary.dic: Can't create '\\\\?\\D:\\Full\\Path\\to the\\Folder1\\data\\data_Dictionary.dic'
tar: Error exit delayed due to previous errors

存储库中的其他所有内容似乎都可以正确提取,包括发往同一文件夹的文件,但这两个文件除外。如果有关系的话,这两个文件都是.dic,即文本文件。

这些文件提取失败的原因是什么?事后有没有办法只提取这些特定文件?大约有 1.5TB 的数据需要提取,可能需要一两天的时间,我不想再运行整个过程。

答案1

这些tar档案很可能是在 Linux 上创建的,现在正在 Windows 上解压。

由于 Linux 上的文件和文件夹名称可能包含在 Windows 下非法的字符,所以这可能是这里的问题。

微软文章 命名文件、路径和命名空间 列出保留字符:

  • <(少于)
  • >(比...更棒)
  • :(冒号)
  • "(双引号)
  • /(正斜杠)
  • \(反斜杠)
  • |(垂直杆或管道)
  • ?(问号)
  • *(星号)

作为一种解决方法,您可以在 Windows 上安装 WSL 和 Linux 发行版并解压其中的文件。

适用于 Windows 10 的 Windows Linux 子系统安装指南

相关内容