Często mam nazwę pliku i jego częściową ścieżkę, np. „Content / docs / file.xml”.
Czy istnieje prosty sposób wyszukiwania tego pliku bez ręcznego dzielenia jego części na osobne nazwy katalogu i nazwy pliku?
Byłoby wspaniale, gdyby find
działał w ten sposób, więc mogłem biec find content/docs/file.xml
, ale niestety tak nie jest.
linux
command-line
search
find
slhck
źródło
źródło
find -path *content/docs/file.xml
pracował dla mnie.Odpowiedzi:
Podaj
*
symbol wieloznaczny, aby wskazać dopasowanie do czegokolwiek . Musisz także uciec od*
s, np .:lub umieść wzór w cudzysłowie, np .:
Jak opisuje to strona podręcznika:
źródło
find ma również opcję -wholename
find $top_dir -wholename *string*
źródło
Lub tylko
źródło
Na przykład wyszukiwanie plików w lokalizacji za pomocą gwiazdki / wildcard (
*
) jako:dir=“/apps/*/instance01/"
możesz użyć find${dir} -name “*.jks”
. umieszczenie wszystkich plików w tablicy takiej jak ta:jeśli chcesz uzyskać pliki z innymi rozszerzeniami użyj „lub” w ten sposób:
-name "*.keystore" -o -name "*.jks" -o -name “*.p12"
ponieważ-name
akceptuje tylko pojedynczy ciąg, więc użyj „lub”.Na koniec umieść wszystko w tablicy w następujący sposób:
jeśli masz pełne ścieżki, a nie ścieżki częściowe, o wiele łatwiej jest umieścić je w tablicach w ten sposób:
źródło