Não, não há como separar, diretamente da linha de comando rsync, os arquivos de um usuário específico.
No entanto, é muito fácil gerar uma lista desses arquivos, por exemplo, com um comando como
find /src/directory -type f -exec ls -lh {} \; | awk '{if ($3 == "your_name") for (i=1; i<=NF-8; i++) $i = $(i+8); NF-=8; print}'
find
localiza todos os arquivos na árvore abaixo do diretório / src /, e imprime uma longa lista que inclui o proprietário e passa essas listagens para awk
, que seleciona aquelas que pertencem a você ("your_name" ") e, em seguida, apenas para estes, imprime o caminho completo. A construção estranha que começa com for
se deve ao fato de que alguns dos nomes de arquivos podem incluir um espaço, portanto essa construção imprime todos os tokens ( i.e.
, todas as seqüências de caracteres delimitadas por espaço) da 9ª coluna em (nomes de arquivos pode incluir um número arbitrário de espaços). Além disso, essa construção garante que isso permaneça em uma única linha.
Você pode redirecionar essa saída para um arquivo e usar o rsync apenas nos arquivos listados nesse arquivo.