Muszę przyznać, że zawsze zapominałem o składniowych zawiłościach wzorców nazewnictwa dla Nanta (np. Używanych w zestawach plików). Wydaje mi się, że rzeczy z podwójną gwiazdką / pojedynczą gwiazdką są bardzo trudne do zapomnienia.
Czy ktoś może podać ostateczny przewodnik po wzorcach nazewnictwa?
Odpowiedzi:
Zasady są następujące:
Innym sposobem myślenia o tym jest podwójna gwiazda (**) dopasowuje ukośnik (/), ale pojedyncza gwiazdka (*) nie.
Powiedzmy, że masz pliki:
Następnie wzory:
*.c
nic nie pasuje (w bieżącym katalogu nie ma plików .c)src/*.c
pasuje do 2 i 3*/*.c
pasuje do 2 i 3 (ponieważ * pasuje tylko do jednego poziomu)**/*.c
pasuje do 2, 3 i 4 (ponieważ ** pasuje do dowolnej liczby poziomów)bar.*
mecze 1**/bar.*
pasuje do 1 i 2**/bar*.*
pasuje do 1, 2 i 4src/ba?.c
pasuje do 2 i 3źródło
**.c
pasowało?bar.txt
sposób niejawny./bar.txt
(.
oznacza bieżący katalog). Tak, że lista jest naprawdę./bar.txt
,./src/bar.c
itp i./
zakłada.Oto kilka dodatkowych dopasowań wzorców, które nie są tak oczywiste w dokumentacji. Testowane przy użyciu NAnt dla przykładowych plików w odpowiedzi benzado:
src**
pasuje do 2, 3 i 4**.c
pasuje do 2, 3 i 4**ar.*
pasuje do 1 i 2**/bartest.c/**
zapałki 4src/ba?.c/**
pasuje do 2 i 3źródło
Podwójne gwiazdki (
**
) są powiązane z dopasowywaniem nazw folderów, podczas gdy pojedyncze symbole gwiazdka (* = multi characters
) oraz znak zapytania (? = single character
) są używane do dopasowywania nazw plików.źródło
Sprawdź referencje Nant . Wzorce zestawu plików to:
„*” oznacza zero lub więcej znaków, np. * .cs
'?' dopasowuje jeden znak, np.? .cs
A „**” oznacza drzewo katalogów, np. Src / ** / *. Cs znajdzie wszystkie pliki cs w dowolnym podkatalogu src.
źródło