2010-04-07 6 views
5

Ciao Sto cercando di trovare tutti i file js & css in un comando di ricerca. Ho provato tutto il seguito ma invano:Hai trovato il comando di ricerca di Linux?

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]?" 

Ora cosa ??

risposta

6

-name accetta argomenti che sono globs, non espressioni regolari. Si potrebbe usare -regex se si voleva utilizzare le espressioni regolari, ma l'opzione -o (che significa "o") è probabilmente la soluzione più semplice:

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

grazie a tutti, immagino stavo solo cercando di scavare in profondità nel farlo funzionare con EXPS reg. Ho funzionato usando: trovare WebContent -type f \ (-nome "* .css" -o -name "* .js" \) – rabbit

0

Prova questa

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

si può fare booleano espressioni con find. -o è l'acronimo di OR.

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

-1: devi citare o sfuggire quei '*' s, ad es. 'find -name \\ *. js -o -name \\ *. cpp' o' find -name "* .js" -o -name "* .cpp" ' –

+0

sembra funzionare bene anche quando non lo faccio . –

+1

@Omry: troverà i file corrispondenti nella directory corrente ma non nelle sottodirectory, perché il glob viene espanso immediatamente - provalo –

0

utilizzare il caso -iname opzione insensitive

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