1

使用 python 的 tarfile 模块,有没有办法指定 tar 的 Q 选项的等效项(注意:特定于 Haiku)?

tar --help
  -Q, --replace-hardlinks    replace hardlinks with corresponding symlink when
                             extracting

目前代码基本上是:

tarFile = tarfile.open(archiveFile, 'r')
members = None
if subdir:
    members = [
        member for member in tarFile.getmembers()
        if member.name.startswith(subdir)
    ]
tarFile.extractall(targetBaseDir, members)
tarFile.close()
4

1 回答 1

0

您可以通过使用成员返回的对象的islink()方法来解决它。TarInfo类似于以下内容:

tarFile = tarfile.open(archiveFile, 'r')
   for member in tarFile.getmembers():
        if member.islnk():
             # code for handling links
        else:
            tarFile.extract(targetBaseDir, member)
tarFile.close()
于 2014-11-02T14:06:22.510 回答