Isso não precisa ser feito rsync
, mas seria bom não ter que escrever um script para fazer isso e rsync
está muito próximo do que eu quero.
rsync -a
(ou -l
) pode preservar links simbólicos e -L
pode desreferenciar links simbólicos e copiá-los como se fosse um arquivo / diretório normal. No entanto, é possível manter o link simbólico e também copiar os arquivos / diretórios para os quais os links apontam?
Aqui está um exemplo. Digamos que temos esta hierarquia de pastas:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirB/not_this_file
dirC/file
dirC/file2
dirD/others
e quando eu fizer rsync -aR dirA dest
(ou qualquer outra coisa), gostaria que elas aparecessem exatamente em dest
:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirC/file
dirC/file2
Isso é possível com rsync
? Obrigado.
Vamos supor que links simbólicos com caminho absoluto ou apontar para fora do diretório de origem possam ser ignorados.
a -> b
, b -> c/foo
, c -> d/e
: um pedido de cópia a
também deve copiar b
, c
, c/foo
, d
, d/e
e d/e/foo
).
dirA/link
for um link simbólico../dirB/file
, isso deve ser tratado como cópiadirB/file
paradest/dirB/file
edirA/link
paradest/dirA/link
. E sedirA/link
for um link para../../another_file
? O que acontece, em geral, sedirA/link
aponta para um diretório mais alto na árvore de diretórios?