Ubuntu One 文件夹同步过滤器

4 投票
4 回答
883 浏览
提问于 2025-04-15 23:44

我正在尝试修改Ubuntu One文件同步的Python脚本,让它不包括像.iso这样的文件。

我找到这个文件了:/usr/share/pyshared/ubuntuone/u1sync/constants.py

里面有一段代码:

import re

# the name of the directory u1sync uses to keep metadata about a mirror
METADATA_DIR_NAME = u".ubuntuone-sync"

# filenames to ignore
SPECIAL_FILE_RE = re.compile(".*\\.("
                             "(u1)?partial|part|"
                             "(u1)?conflict(\\.[0-9]+)?)$")

我该怎么编辑最后这一部分(正则表达式?),让它忽略.iso文件呢?我很确定这里就是要修改的地方!

我觉得这应该是标准的Python操作 :)

任何帮助都非常感谢。

谢谢!

安迪

4 个回答

1

用来匹配iso文件的正则表达式是:

".*\\.iso$"

这个表达式可以匹配任何以“.iso”结尾的文件。

觉得你可以把这个作为另一个行添加到re.compile的调用中,但我不太懂Python,可能需要更懂的人来确认一下。

3

你可以去查看Python的正则表达式文档,那里有你需要的信息。

如果是处理.iso文件,你可以在最后一行加上一个"|.*\.iso$"

2

UbuntuOne 应该有一个 .ignore 文件,或者类似的东西……我想忽略很多文件,比如 .pyc 和 .blend1,这只是个开始。

更新:它确实有这个功能——你可以看看:

https://answers.launchpad.net/ubuntuone-client/+question/114731

过时的回答:

要回答这个问题…… .*\\. 是旧模式的开头,所以把:

"(u1)?conflict(\.[0-9]+)?)$")

替换成:

"(u1)?conflict(\.[0-9]+)?|iso)$")

应该就可以了。

在 Python 中,把字符串一个接一个列出来就是把它们连接起来,所以最后变成一个完整的字符串。

撰写回答