

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用語法中的 glob 模式
<a name="syntax-glob"></a>

當您指定管道成品或來源位置中使用的檔案或路徑時，您可以根據動作類型指定成品。例如，對於 S3 動作，您可以指定 S3 物件金鑰。

對於觸發，您可以指定篩選條件。您可以使用 glob 模式來指定篩選條件。範例如下。

當語法為「glob」時，會使用有限模式語言搭配類似規則表達式的語法來比對路徑的字串表示法。例如：
+  `*.java` 指定路徑，代表以 .java 結尾的檔案名稱
+ ` *.*` 指定包含點的檔案名稱
+  `*.{java,class}` 指定以 .java 或 .class 結尾的檔案名稱
+  `foo.?` 指定以 foo. 和單一字元副檔名開頭的檔案名稱

下列規則用於解譯 glob 模式：
+ 若要在目錄邊界中指定名稱元件的零個或多個字元，請使用 `*`。
+  若要指定名稱元件跨目錄邊界的零個或多個字元，請使用 `**`。
+ 若要指定名稱元件的一個字元，請使用 `?`。
+ 若要逸出原本會解譯為特殊字元的字元，請使用反斜線字元 (`\`)。
+ 若要指定一組字元中的單一字元，請使用 `[ ]`。
+ 若要指定位於建置位置根目錄或來源儲存庫位置的單一檔案，請使用 `my-file.jar`。
+ 若要在子目錄中指定單一檔案，請使用 `directory/my-file.jar`或 `directory/subdirectory/my-file.jar`。
+ 若要指定所有檔案，請使用 `"**"`。`**` 全域模式表示 符合任意數量的子目錄。
+ 若要在名為 的目錄中指定所有檔案和目錄`directory`，請使用 `"directory/**"`。`**` 全域模式表示 符合任意數量的子目錄。
+ 若要指定名為 目錄中的所有檔案`directory`，但不是其任何子目錄，請使用 `"directory/*"`。
+  在括號表達式中`*`， `?`和 `\` 字元會比對自己。如果是括號內的第一個字元，則 (-) 字元會比對本身，如果是否定，`!`則會比對 後面的第一個字元。
+  `{ }` 字元是子模式的群組，其中群組符合群組中的任何子模式。`","` 字元用於分隔子模式。群組不能巢狀組合。