
find src/ -name "*.cc" -o -name "*.cpp" -print
find src/ -name "*.cc" -o -name "*.cpp"
El comportamiento previsto es buscar todos los archivos C++ en un directorio y todos sus subdirectorios. Según tengo entendido, el comando -print era el predeterminado. Sin embargo, estos dos comandos me dan resultados significativamente diferentes. Si los redirijo a un archivo ( printed
y notprinted
, respectivamente):
$ wc -l printed notprinted
1813 printed
1979 notprinted
Diferenciar cada archivo ordenado no me ayuda mucho. No existe un patrón claro para lo que se excluye printed
.
¿Que está pasando aqui?
Respuesta1
La respuesta es la precedencia. Si no se proporciona ninguna acción, se imprime, pero si especifica una acción, hace lo que solicitó. Su ejemplo -print
solo imprime .cpp
archivos. Probablemente quieras:
find src/ \( -name "*.cc" -o -name "*.cpp" \) -print
Puede tener múltiples condiciones con diferentes acciones.