Já pensou em usar o find para fazer o seu trabalho duro?
Algo ao longo das linhas de
find ./ -name "*.html" -exec rsync -R {} /target/base/directory/ \;
irá recriar a árvore de diretórios de ./, na qual os arquivos html são encontrados, e construir o mesmo sob / target / base / directory