Quando a cópia fica complicada, rsync costuma ser útil:
rsync -mva --include '*/' --include '*.png' --exclude '*' "$1/" .
Antes de executar isso de verdade, faça um dry-run (opção: -n ) para que você possa verificar se faz o que deseja:
rsync -nmva --include '*/' --include '*.png' --exclude '*' "$1/" .
Como funciona
-
-v (opcional) diz ao rsync para ser detalhado, para que você possa ver o que está acontecendo.
-
-a (opcional) diz ao rsync para preservar atributos.
-
--include '*/' diz ao rsync para incluir todos os diretórios
-
--include '*.png' diz ao rsync para incluir todos os arquivos com .png de sufixo.
-
--exclude '*' diz ao rsync para excluir todos os arquivos não correspondidos acima.
-
-m diz ao rsync para não copiar diretórios que estariam vazios no lado do recebimento.
Observe que as opções include / exclude precisam ser especificadas por ordem.