Prueba:
find src/ -type f | grep -i so$ | xargs -i cp {} dst
Si está utilizando Bash, puede activar el globstar
opción de shell para hacer coincidir archivos y directorios recursivamente:
shopt -s globstar
cp src/**/*.so dst
Si necesita encontrar archivos cuyos nombres comiencen con .
y/o archivos en y bajo directorios cuyos nombres comienzan con .
, establece el dotglob
opción también (por ejemplo, con shopt -s dotglob
). Puede configurar ambos en un solo comando:
shopt -s globstar dotglob
Probé el comando sugerido por Mike:
find src/ -type f | grep -i so$ | xargs -i cp {} dst
pero terminó volcando todos los archivos en el directorio dst
con sus caminos relativos perdidos.
Para mantener las rutas relativas, el comando debe modificarse a esto:
find src/ -type f | grep -i so$ | xargs -i cp {} dst/{}