我编写了一个脚本,将所有日志文件收集到一个tar文件中。问题是它不包含软链接的数据。我试图使用dereference标志但是python 2.4.3无法识别它。
我无法使用命令行,因为有一个长度限制,我想支持许多日志文件。
user ~/Desktop]$python
Python 2.4.3 (#1, Jun 11 2009, 14:09:37)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
>>> import tarfile
>>> tarfile.TarFile('test.tar.gz', mode='w', dereference=True)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: __init__() got an unexpected keyword argument 'dereference'
>>>
答案 0 :(得分:3)
支持Python 2.4 docs dereference = True
。自从Python 2.3中添加tarfile
以来,它似乎得到了支持。
除非您使用非Posix系统(Windows),否则您必须做错了。发布您的代码以及dereference = True
带来的错误,以便我们告诉您这是什么。
另外,通过软链接我假设您的意思是符号链接?因为这是dereference = True
允许工作的原因。
编辑:我刚看了code for tarfile on Python 2.4。 不支持构造函数的dereference
参数,但确实似乎具有实际取消引用所需的代码(针对source for Python 2.6进行了检查)。所以,
import tarfile
tf = tarfile.TarFile('test.tar.gz', mode='w')
tf.dereference = True
应该有效。请更新您的结果。
答案 1 :(得分:0)
您是否只能使用-T
上的--files-from
或tar
选项?