2014-11-02 77 views
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() 

回答

0

你可以解决它通过使用成员返回的TarInfo对象的islink()方法。类似如下:

tarFile = tarfile.open(archiveFile, 'r') 
    for member in tarFile.getmembers(): 
     if member.islnk(): 
      # code for handling links 
     else: 
      tarFile.extract(targetBaseDir, member) 
tarFile.close()