使用非唯一文件名解压 tarball

untar tarball with non unique file names

我有一个 .tar 文件需要提取,如下所示

tar tvf bla
100   part1/part1
336   part1/part1
754   part1/part1
638   part1/part1

文件夹和文件名都具有相同的名称,即使文件本身是唯一的。 当我提取 tar 文件时,"part1" 被多次覆盖,我只剩下最后一个 "part1"。我怎样才能提取这些文件并给它们起不同的名字?我真的不在乎名字是什么,我只需要它们是不同的,所以当我提取它们时 none 其中的 none 会被覆盖。

一个可能的输出可能是

part1/part1.1
      part1.2
      part1.3
      part1.4

我想出了一个 Python 有效的解决方案

import tarfile
tar = tarfile.open([SOMEFILE])
offset = 1
for tarinfo in tar:
   tarinfo.name = "parts1." + str(offset)
   tar.extract(tarinfo, path="parts1")
   offset +=1

这会产生

  parts1/parts1.1
        parts1.2
        parts1.3
        parts1.4