Você precisa vincular o nome do diretório ao topo da árvore. Isso é explicado na página de manual rsync
na seção REGRAS DE FILTRO .
If the pattern starts with a
/
then it is anchored to a particular spot in the hierarchy of files, otherwise it is matched against the end of the pathname.
Então você precisa usar /js
, por exemplo, assim:
rsync -av --exclude /js {src} {dst}