rsync: como realocar links simbólicos absolutos?

4
Eu pesquisei sobre o rsync manpage, bem como sobre várias questões relacionadas aqui no serverfault. Eu joguei com as opções -R e -L e -l, mas sem sorte.

Aqui está a pergunta: ao enviar um diretório de local para remoto, existe uma opção (ou opção de combinação) que realoca os links simbólicos relativos ao diretório local para que eles se tornem relativos ao diretório de destino na máquina remota?

Aqui está um exemplo mínimo do que eu quero enviar:

dir local: /home/bob/foo

/home/bob/foo/a --> /home/bob/foo/bar
/home/bob/foo/bar

e aqui está como eu gostaria que se materializasse na

dir remoto: /u/apps/foo

/u/apps/foo/a --> /u/apps/foo/bar
/u/apps/foo/bar

Por exemplo, rsync -az /home/bob/foo/ remote:/u/apps/foo/ não faz isso; acabamos com:

/u/apps/foo/a --> /home/bob/foo/bar
/u/apps/foo/bar

Se /home/bob/foo/bar existe ou não na máquina remota é irrelevante; em ambos os casos, o resultado definitivamente não é o que eu preciso.

    
por Pierre D 24.01.2013 / 20:39

1 resposta

2

Se os links forem para caminhos absolutos, não há como evitar isso. Você pode contornar isso fazendo com que os links simbólicos sejam relativos:

/home/bob/foo/a --> ./bar
/home/bob/foo/bar

mas isso pode ser difícil, dependendo de como você gera esses links e quantos deles existem.

    
por 24.01.2013 / 20:56

Tags