Gostaria de procurar arquivos que não correspondam a 2 -name
condições. Eu posso fazer assim:
find /media/d/ -type f -size +50M ! -name "*deb" ! -name "*vmdk"
e isso produzirá um resultado adequado, mas posso juntar essas duas condições com OR de alguma forma?
-regex
é menos portátil que-name
.sim você pode:
Explicação da especificação POSIX :
Observe que os parênteses, tanto de abertura quanto de fechamento, são prefixados por uma barra invertida (
\
) para impedir a avaliação pelo shell.fonte
-exec
alguma ação nosfind
resultados, lembre-se de colocar entre parênteses\( \)
todos os critérios; caso contrário,-exec
será aplicado apenas ao último-or
critério. Para trabalhar em todos eles, coloque-os entre parênteses:find \( <criterion> -o <criterion> \) -exec <command>
Você estava perto da solução:
Você pode combinar os seguintes operadores lógicos em qualquer sequência:
fonte
Você pode usar expressões regulares como em:
Barra invertida é o caractere de escape;
.
corresponde a um único caractere e*
serve para corresponder ao caractere anterior zero ou mais vezes, portanto,.*
significa corresponder a zero ou mais caracteres.fonte