O que você deseja fazer deve ser possível com a opção --relative (ou -R ) e uma execução anterior de find para gerar uma lista de arquivos:
find /cvs1 -type f -not \( -name *Locks -o -name tmp \) -print0 > filelist
rsync -pR --modify-window=1 -0 \
--files-from=filelist /mnt/DUBBU01/Linux/Buzz/
Aqui você cria uma lista de arquivos com terminação nula (somente arquivos, não diretórios) e alimenta isto para rsync como a fonte para sua operação, informando sobre a terminação nula com -0 . Isso é útil para evitar problemas com espaços, etc. em nomes de arquivos.
da página de manual do rsync:
-R, --relative
Use caminhos relativos. Isso significa que os nomes de caminho completos especificados na linha de comando são enviados para o servidor, em vez de apenas as últimas partes dos nomes de arquivos. Isso é particularmente útil quando você deseja enviar vários diretórios diferentes ao mesmo tempo. Por exemplo, se você usou este comando:
rsync -av /foo/bar/baz.c remote:/tmp/
... isso criaria um arquivo chamado baz.c in /tmp/ na máquina remota. Se ao invés disso você usou
rsync -avR /foo/bar/baz.c remote:/tmp/
então um arquivo chamado /tmp/foo/bar/baz.c seria criado na máquina remota - o nome do caminho completo é preservado.