自建同步服务syncthing的忽略模式语法

📅 2026/7/18 3:57:00
自建同步服务syncthing的忽略模式语法
Syncthing是一款开源的文件同步程序如果有一个VPS就可以将自己本地文件夹与服务器同步。Syncthing可以选择通过全球服务器节点连接至自己的服务器也可以本地直接与自己的服务器连接前提是自己的服务器有公网IP当然这些都是废话百度就有一堆今天说的是Syncthing同步文件夹时怎样忽略文件就是不上传自己不想上传的文件。其实主要就是翻译Syncthing的文档地址在这Ignoring Files — Syncthing documentation1.忽略模式的配置文件如果某些文件不应与其他设备同步则可以创建一个名为.stignore的文件其中包含要忽略的文件模式。.stignore文件必须放在文件夹的根目录中。.stignore文件本身永远不会同步到其他设备但可以使用 #include 来包含在设备之间同步的文件。所有模式语法都从文件夹根目录开始生效。生效是以根目录为基准的。文件虽然被忽略但文件夹也不会被删除。如果需要删除文件夹使用(?d)2.匹配模式1 .stignore文件包含文件或路径模式的列表。匹配语法从上至下生效。2 一般文件名与自身匹配即语句foo匹配文件foo、subdir/foo以及任何名为foo的目录。空格被视为常规字符。即一般语句与文件名、文件夹名匹配并且从根目录起逐级匹配。3 星号 * 匹配文件名中的零个或多个字符但与目录分隔符不匹配。te*st匹配test、subdir/telerest但不匹配tele/rest。4 双星号 ** 匹配如上但也包含目录分隔符。te**st匹配test、subdir/telerest和tele/sub/dir/rest。5 问号 匹配单个字符但不匹配目录分隔符。如te??st匹配tebest但不是teb/st或test。6 括在方括号 [] 中的字符被解释为字符范围[a-z]。在使用此语法之前您应该对正则表达式字符类有基本的了解。7 目录分隔符 / 表示仅在当前目录中匹配。/foo匹配foo但不匹配subdir/foo。8 以#include开头的语句会从指定文件加载匹配模式。文件不存在或被包含多次是错误的。请注意虽然这可以用于包含子目录中文件的模式但模式本身仍然相对于文件夹根目录。示例#include more-patterns.txt。9 一个以开头的 匹配语句表示否定 上传包含匹配文件即不被忽略。这可以用于覆盖后面的更一般的模式。10 以 (?i) 前缀开头的模式允许不区分大小写的匹配。(?i)test匹配testTEST和tEsT。 (?i) 前缀可以与其他模式组合例如语句(?i)!picture*.png表示Picture1.PNG应该同步。在Mac OS和Windows上模式始终不区分大小写。11 以(?d)为前缀开头的语句表示可以删除这些文件如果它们阻止了目录删除。任何操作系统生成的文件都应该使用此前缀应该将其删除。12 以//开头的行是注释没有任何效果。13 Windows不支持转义\ [foo - bar \]。14 前缀可以按任何顺序排列例如“(?i)(?d)”但不能在一对括号中不是“(?di)”。3 例子给定目录结构.DS_Store foo foofoo bar/ baz quux quuz bar2/ baz frobble My Pictures/ Img15.PNG.stignore文件的内容(?d).DS_Store !frobble !quuz foo *2 qu* (?i)my pictures解析.DS_Store # 忽略如果妨碍父目录删除将被删除 foo # 同步不匹配“foo”但匹配“foo*” 或 “*foo” foofoo # 同步不匹配“foo”但匹配“foo*” 或 “*foo” bar/ # 同步 baz # 同步 quux # 忽略匹配“qu*” quuz # 同步匹配“qu*” 但被前面的“quiz”排除 bar2/ # 同步虽然匹配 “*2” 但子目录文件同步了 baz # 忽略由于父目录被忽略 frobble # 同步“frobble” 按从上到下顺序生效 My Pictures/ # 忽略匹配最后一条 Img15.PNG # 忽略由于父目录被忽略有空欢迎看我的个人博客https://ming1z.cyou