使用Python的tarfi创建tarball时保留文件权限

2024-09-25 08:38:40 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,stackoverflowers

我想在使用Python的tarfile模块时保留原始文件权限。 我有相当多的可执行文件一旦解压缩tarball就会失去它们的权限。在

我在做这样的事情:

import tarfile
tar = tarfile.open("mytarball.tar.gz", 'w:gz')
tar.add('my_folder') #tar the entire folder 
tar.close()

然后我使用shutil将它从windows复制到linux机器(用samba映射):

^{pr2}$

然后,在linux中提取tarball

unix>tar -xvf mytarball.tar.gz  

提取tarball后,我将失去对我的文件的所有“x”权限

有什么线索可以解决这个问题吗?在

问候


Tags: 模块文件import可执行文件权限linuxtaropen
1条回答
网友
1楼 · 发布于 2024-09-25 08:38:40

如果您知道哪些文件应该具有执行权限,则可以使用筛选器功能手动设置权限:

def set_permissions(tarinfo):
    tarinfo.mode = 0777 # for example
    return tarinfo

tar.add('my_folder', filter=set_permissions)

相关问题 更多 >