我正在使用 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 发行版并解压其中的文件。