Esteja ciente de que você está usando o termo "expressão regular" com bastante liberdade. O que você está lidando na opção find
-name
é bastante próximo em relação a um shell
glob
... Por outro lado, a opção find
-regex
usa uma pesquisa de expressão regular. Você pode escolher qual estilo de regex usar através da opção -regextyp. A escolha dos tipos implementados atualmente é: emacs (este é o padrão), posix-awk, posix-basic, posix-egrep e posix-extended. ...
Como você lida com a barra invertida e o asterisco, etc. pode variar dependendo do que você deseja fazer. Se você quiser que find -name
considere um asterisco como um caractere curinga, será necessário garantir que ele NÃO escape quando find
realmente lê o padrão na linha de comando.
Para garantir que encontrar a obtenha em uma forma sem escape, você deve evitar que o shell (normalmente bash ) seja executado * (muito poderoso) expansão de shell no seu asterisco ... Para proteger você DEVE escapar dele no nível da linha de comando (ex .: "escape" "nos olhos da casca) .. O conceito chave neste momento é " proteger " ...
Você pode proteger seu asterisco do shell de três maneiras:
- use
'
aspas simples'
- use
"
aspas duplas"
- use as barras invertidas
\
(e não )
Portanto, para find
ver seu asterisco como um caractere curinga, qualquer um dos métodos de "proteção" a seguir funcionará.
-
find -name up'*'
-
find -name up"*"
-
find -name up\*
-
find -name 'up*'
-
find -name "up*"
-
find -name "up"\*
Observe que o shell nunca executa a expansão de nada em '
aspas simples '
... "
aspas duplas "
são uma história diferente ..