Você não precisa do **
e, para um único padrão, também pode usar --exclude
. O padrão --include
garante que os diretórios correspondentes ao padrão --exclude
sejam incluídos na cópia.
rsync -a --include '*/' --exclude='.*.swp' /home/username/Documents/ remotehost:/home/username/Documents/
Se o seu nome de usuário remoto tiver /home/username
como seu diretório inicial, você poderá simplificar ainda mais com um caminho relativo:
rsync -a --include '*/' --exclude='.*.swp' /home/username/Documents/ remotehost:Documents/
Tenha em mente também que vim
usará outros nomes de arquivos para o seu arquivo de troca se um *.swp
correspondente já existir ou estiver em uso. Mas você pegará a maioria deles com esse padrão único. Veja o que a documentação avisa:
If this file already exists (e.g., when you are recovering from a crash) a
warning is given and another extension is used, ".swo", ".swn", etc.
Você poderia adaptar o padrão de exclusão para usar .*.sw[a-p]
se estivesse suficientemente preocupado.