Você pode enviar a saída do find para o rsync usando uma das opções descritas abaixo.
Método 1
Essas duas opções são muito semelhantes, ambas presumem que você está alterando diretórios para algum local e, em seguida, executando o comando find
de lá.
$ rsync -avz --remove-sent-files \
--files-from=<(find ./ -mtime +14 -size +10k) ./ /dest
Você também pode usar um canal para alimentar a lista em:
$ find ./ -mtime +14 -size +10k -print0 \
| rsync -av --files-from=- --from0 ./ /dest
Método # 2
Este método pode ser executado em qualquer lugar.
$ find /src/dir/ -mtime +14 -size +10k -printf %P\0 \
| rsync --files-from=- --from0 /src/dir/ /dst/dir/
-
printf %P
: nome do arquivo com o nome do argumento da linha de comando sob o qual ele foi encontrado removido. Dessa forma, você pode usar qualquer diretório src, sem necessidade de fazer cd no seu diretório src primeiro.