Prova:
find src/ -type f | grep -i so$ | xargs -i cp {} dst
Se stai usando Bash, puoi attivare globstar
opzione di shell per abbinare file e directory in modo ricorsivo:
shopt -s globstar
cp src/**/*.so dst
Se hai bisogno di trovare file i cui nomi iniziano con .
, e/o file in e sotto directory i cui nomi iniziano con .
,imposta dotglob
anche l'opzione (ad esempio, con shopt -s dotglob
). Puoi impostarli entrambi in un comando:
shopt -s globstar dotglob
Ho provato il comando suggerito da Mike:
find src/ -type f | grep -i so$ | xargs -i cp {} dst
ma ha finito per scaricare tutti i file nella directory dst
con i relativi percorsi perduti.
Per mantenere i percorsi relativi il comando deve essere modificato in questo:
find src/ -type f | grep -i so$ | xargs -i cp {} dst/{}