0

我需要将选项传递给 rsync。我这样做

EXCLUDE = [".svn",".dropbox"]
OPTS = "-rltgoi --delay-updates --delete --exclude={:} --chmod=a-w".format(EXCLUDE)

此代码打印

-rltgoi --delay-updates --delete --exclude=['.svn', '.dropbox'] --chmod=a-w

[]不能被shell处理

我需要通过

-rltgoi --delay-updates --delete --exclude=.svn,.dropbox --chmod=a-w
4

2 回答 2

3

您需要加入EXCLUDE一个逗号分隔的字符串:

EXCLUDE = ','.join(EXCLUDE)

相反,您正在插入列表表示,这不是您想要的(请注意,列表表示也包括带引号的字符串值)。

于 2013-10-21T15:19:29.447 回答
1

在将排除项添加到命令之前,您应该将它们加入到字符串中。

OPTS = "-rltgoi --delay-updates --delete --exclude={0} --chmod=a-w".format(",".join(EXCLUDE))
于 2013-10-21T15:21:44.750 回答