O rsync(1)
manual da página man diz:
-l, --links
When symlinks are encountered, recreate the symlink on the destination.
Mas para onde o link apontará?
- Para o mesmo ponto na fonte ou
- Para o mesmo ponto relativo no destino?
Exemplo:
Dir1=/home/user/data/
link simbólico /home/user/myproject/symlink1
apontando para/home/user/data
rsync
copia o todo /home/user
para/media/user/flash/backup/
Qual será o /media/user/flash/backup/myproject/symlink1
ponto para se rsync
foi emitido com --links
? Para /home/user/data
ou para /media/user/flash/backup/data
?
E existe uma maneira de fazer a segunda opção?
Existe uma diferença se o link simbólico foi criado enquanto em /home/user/myproject
as ln -s ../data symlink1
ou as ln -s /home/user/data /home/user/myproject/symlink1
?
Pense no link simbólico como um arquivo de texto com um caminho nele. Ele apenas copia o arquivo de texto. Então, no seu exemplo, ele apontará para
/home/user/data
Para responder à sua pergunta subsequente: sim, há uma diferença entre um link relativo e um link absoluto. Se você quer que seus links sejam relativos, você precisa construí-los dessa forma. por exemplo
Será preservado do jeito que você deseja.
Aparte: Para um backup, você pode querer o
-a
que implica-l
. Geralmente gera erros em uma unidade flash externa apenas porque a maioria é formatada em fat32 e não suporta a preservação de todas as opções de arquivo, como usuário e permissões.