Desculpe, não tenho reputação suficiente para comentar, então tenho que criar uma nova resposta.
O comando find
não funcionará aqui porque ele pode pesquisar apenas um diretório no disco. (Então, isso só funcionaria se você primeiro svn checkout a totalidade de "repository_dir".)
Veja o seguinte link no StackOverflow para obter informações semelhantes. questão. Algo parecido com a resposta dada é mais apropriado:
for f in 'svn ls -R repository_dir | grep "needed_dir"';
do
svn checkout repository_dir/$f
done
A opção -R para o svn faz o svn listar tudo no URL recursivamente. O grep procura o diretório que você precisa.
Para o que vale a pena, você pode tornar isso um pouco mais curto usando o comando xargs
em vez de um loop for.
svn list -R <URL> | grep "needed_dir" | xargs --max-args=1 -I'{}' svn co <URL>'{}'
O Xargs executa "svn co (caminho-na-url)" para cada palavra delimitada por espaços em branco descoberta por svn list e grep. (O estranho -I '{}' é necessário, caso contrário, xargs coloca um espaço entre a URL e o nome do subdiretório.)