obtenha o rsync para excluir a referência de diretórios direcionados apresentados no cmdline como encontrar -H

1

Eu adoraria que o rsync copiasse links simbólicos para dirs especificados no cmdline como dirs, mas deixasse todos os links simbólicos na árvore copiada como é - como find -H , mas a única maneira é um truque desagradável de

rsync -aR --rsync-path='cd /sender/parent/dir/of/tree; rsync' symlinkeddir/ target

o problema é que isso se torna uma exceção em meus scripts de backup rsync apenas para esse conjunto de caminhos, portanto não posso usar o mesmo comando (ou mais, apenas UM rsync ) para fazer o que eu quero. Comportamento semelhante a find -H faria isso muito bem. : /

    
por math 02.09.2014 / 07:38

1 resposta

0

Se somelink é um link simbólico para um diretório somedir , então

rsync -a somelink/. target/

copia o conteúdo de somedir em target .

Se você só tem links simbólicos relativos que ficam dentro da fonte, então você pode usar

rsync -a --copy-unsafe-links somelink target/

Se você quiser preservar o caminho do symlink dentro do alvo, não acho que o que você queira fazer seja feito apenas com o rsync. Você pode fazê-lo com o rsync mais um pouco de código shell: faça um loop sobre as fontes e especifique o subdiretório de destino explicitamente.

mkdir -p target/somelink
rsync -a somelink/. target/somelink
    
por 03.09.2014 / 01:56

Tags