忽略模式
概要
.stignore
描述
這是 Syncthing 同步文件夾的忽略模式語法指南
語法
.stignore
文件可包含一系列路徑匹配模式,對指定文件的處理方式由第一個匹配到它的模式決定
-
一般的文件名匹配它自己,例如,模式
foo
匹配:- 文件
foo
- 文件
subdir/foo
- 任何名字是
foo
的文件夾
空格會被認為是正常字符,除了前綴和后綴的空格會自動被修剪掉。
- 文件
-
星號(
*
)匹配 0 個或多個字符,但是不匹配路徑分割符。例如te*me
匹配:telephone
subdir/telephone
但是不匹配
tele/phone
-
雙星號(
**
)匹配 0 或多個字符,包括路徑分割符,例如te*me
匹配:telephone
subdir/telephone
tele/sub/dir/phone
-
問號(
?
)匹配單個字符,不匹配路徑分割符,例如te??st
匹配:tebest
不匹配:
teb/st
test
-
方括號(
[]
)指定符號范圍,如[a-z]
匹配:任何小寫字符 -
大括號(
{}
)表示一組替代詞,如{banana,pineapple}
匹配:banana
或pineapple
-
反斜杠(
\
)轉義字符。例如\{banana\}
會嚴格匹配{banana}
,而不會識別成替代詞。轉義字符在 Windows 上不支持! -
以
/
開頭的模式:只在根目錄下進行匹配。例如/foo
匹配foo
但不匹配subdir/foo
-
開頭帶有
#include
的模式會從指定名字的文件中載入模式。如果這個文件不存在,或者被包括了多次,就會出錯。注意,雖然這樣可以從子文件夾中的一個文件載入模式,但模式自身仍然是以根目錄為參照點的。例子:#include more-patterns.txt
-
以
!
前綴的模式會否定這個模式:匹配的文件會被 包括(也就是,不要忽略)。這一項可以覆蓋后續的忽略模式。 -
以
(?i)
前綴的模式會啟用大小寫不敏感。如(?!)test
匹配:test
TEST
sEsT
(?!)
可以與其它模式結合,例如:(?!)!picture*.png
會指定Picture1.PNG
不被忽略。在 Mac OS 和 Windows 上,模式永遠是大小寫不敏感的。 -
以
(?d)
前綴的模式,如果這些文件在阻止目錄的刪除,就會刪除這些文件。這個前綴應該被任何 OS 生成的你樂意移除的文件使用。 -
以
//
起始的行為注釋。
注意:
前綴的順序可以是任意的,例如
(?d)(?i)
,但是不能在同一個括號中,不要使用(?di)
注意:
頂級的包含模式被特殊對待,並且不會強制 Syncthing 不顧其它忽略模式地掃描整個目錄樹。例如:
!/foo
是一個頂級包含模式,!/foo/bar
不是。