2010-04-07 11 views
5

Witam Próbuję znaleźć wszystkie pliki CSS js & w jednym poleceniu find. Próbowałem wszystkich poniżej, ale na próżno:Polecenie znalezienia Linuksa gotcha?

find WebContent -name "*.[jc]ss?" 

find WebContent -name "*.[jc]ss{0,1}" 

find WebContent -name "*.[jc][s]{1,2}$" 

find WebContent -name "*.[jc]s{1,2}" 

find WebContent -name "*.[jc]s[s]?" 

Co teraz?

Odpowiedz

6

-name przyjmuje argumenty, które są globs, a nie wyrażenia regularne. Ci mógłby używać -regex jeśli chciał użyć wyrażeń regularnych, ale opcja -o (co oznacza „lub”) jest chyba najprostsze rozwiązanie:

find WebContent -name "*.js" -o -name "*.css" 
+0

podziękowania dla wszystkich, myślę, że właśnie próbuje kopać głęboko w coraz to działa przy użyciu EXPS reg. Mam go działającego przy użyciu: znaleźć WebContent -type f \ (-name "* .css" -o -name "* .js" \) – rabbit

0

Spróbuj

find WebContent -regextype posix-extended -regex '.*\.(css|js)$' 
-1

można zrobić logiczną wyrażenia z find. -o oznacza OR.

find -name "*.js" -o -name "*.cpp" 
+0

-1: trzeba albo zacytować lub uciec te '*, np. 'find -name \\ *. js -o -name \\ *. cpp' lub' find -name "* .js" -o -name "* .cpp" ' –

+0

wydaje się działać dobrze, nawet jeśli nie . –

+1

@Orry: znajdzie pasujące pliki w bieżącym katalogu, ale nie w podkatalogach, ponieważ glob jest natychmiast rozwijany - spróbuj –

0

użyć obudowy -iname opcji niewrażliwe

find WebContent \(-iname "*.js" -o -iname "*.css" \)