Me gustaría buscar archivos que no coincidan con 2 -name
condiciones. Puedo hacerlo así:
find /media/d/ -type f -size +50M ! -name "*deb" ! -name "*vmdk"
y esto producirá el resultado adecuado, pero ¿puedo unir estas 2 condiciones con OR de alguna manera?
-regex
es menos portátil que-name
.sí tu puedes:
Explicación de la especificación POSIX :
Tenga en cuenta que los paréntesis, tanto de apertura como de cierre, están precedidos por una barra diagonal inversa (
\
) para evitar la evaluación por parte del shell.fuente
-exec
o cualquier otra acción en losfind
resultados, recuerde poner entre paréntesis\( \)
los criterios completos, de lo contrario-exec
se aplicará solo al último-or
criterio editado. Para trabajar en todos ellos,find \( <criterion> -o <criterion> \) -exec <command>
Estuviste cerca de la solución:
Puede combinar los siguientes operadores lógicos en cualquier secuencia:
fuente
Puede usar expresiones regulares como en:
Backslash es el personaje de escape;
.
coincide con un solo carácter y*
sirve para coincidir con el carácter anterior cero o más veces, lo que.*
significa que coincide con cero o más caracteres.fuente