Creo --include
se utiliza para incluir un subconjunto de archivos que se excluyen de otra manera por --exclude
, en lugar de incluir sólo aquellos archivos.
Procurad, más bien:
rsync -zarv --include "*/" --exclude="*" --include="*.sh" "$from" "$to"
ACTUALIZACIÓN:
Para la versión 3.0.7 rsync mayor que, el orden debe ser modificada de la siguiente manera (ver comentarios)
rsync -zarv --include="*/" --include="*.sh" --exclude="*" "$from" "$to"
ACTUALIZACIÓN
agregando el indicador '-m', se evitará Identificación creando estructuras de directorio vacías en el destino. probado en la versión 3.1.2.
Aunque no es estrictamente hablando relacionada, sugeriría citando $ desde/$ a. Si no lo hace, puede obtener resultados inesperados si los argumentos posicionales 1/2 incluyen espacios. –