Zkuste:
find src/ -type f | grep -i so$ | xargs -i cp {} dst
Pokud používáte Bash, můžete zapnout globstar
možnost shellu pro rekurzivní přiřazování souborů a adresářů:
shopt -s globstar
cp src/**/*.so dst
Pokud potřebujete najít soubory, jejichž názvy začínají .
a/nebo soubory v a pod adresáři, jejichž názvy začínají .
,nastavte dotglob
možnost také (např. s shopt -s dotglob
). Můžete je nastavit oba jedním příkazem:
shopt -s globstar dotglob
Zkusil jsem příkaz navržený Mikem:
find src/ -type f | grep -i so$ | xargs -i cp {} dst
ale skončilo to vysypáním všech souborů do adresáře dst
se ztracenými relativními cestami.
Pro zachování relativních cest je třeba příkaz upravit na toto:
find src/ -type f | grep -i so$ | xargs -i cp {} dst/{}
Jak mohu změnit všechny soubory patřící jednomu uživateli na jiného uživatele?
putty 0.61:proč se mi po zadání přihlašovacího jména zobrazuje zpráva Access Denied?