Na página de manual:
-L, --copy-links transform symlink into referent file/dir
Atualmente, estou movendo um sistema de arquivos grande para um novo servidor, pois o servidor de arquivos original não é mais capaz de manipular as gravações do sistema de arquivos.
Para tornar isso mais rápido, criei links simbólicos no sistema de arquivos de destino, apontando para o sistema de arquivos original.
Inicialmente: / company / release (ponto de montagem do sistema de arquivos original)
Após a migração: /company/release.old (aponta para o sistema de arquivos original depois da atualização do mapa do automount) / company / release (aponta para o novo servidor de arquivos / sistema de arquivos após a atualização do mapa do automount)
Em / company / release existem links simbólicos como os seguintes: /company/release/product-1.0.tar.gz - > /company/release.old/product-1.0.tar.gz /company/release/product-1.0 - > /company/release.old/product-1.0 (esta é uma árvore de arquivos)
O uso de links simbólicos permitiu que eu movesse as gravações para o novo sistema de arquivos rapidamente. Agora eu gostaria de migrar lentamente os arquivos e diretórios existentes para o novo sistema de arquivos.
O problema que estou correndo é que desde que os links simbólicos apontem de volta para os arquivos originais, o rsync não vê nenhuma diferença e, portanto, ele não copia realmente o (s) arquivo (s) ou diretório (s) e remove / sobrescreve os links simbólicos.
Existe um conjunto de sinalizadores de rsync que fará o que eu quero?
Na página de manual:
-L, --copy-links transform symlink into referent file/dir
O argumento -a
fará o que você deseja, copiará links simbólicos (entre outras coisas), então o destino será "cópia de arquivamento" da fonte.
NOTA: o -a
sinalizador de cp
que parece muito com o sinalizador rsync -a
(no qual ele preserva todos os atributos, data e hora), NÃO remove o alvo antes da cópia, portanto copia através de quaisquer links simbólicos existentes para onde quer que eles apontem.
Exemplo: * Arquivos a
, b
, c
com strings "one", "two" e "three" neles respectivamente
então tem o symlink aa
apontando para a.*
Com cp -a c aa
, você vai acabar com "três", o que parece muito errado até você perceber que eles estão fazendo POSX, e isso significa menor denominador comum.
Com rsync -a c aa
, o link simbólico aa
é substituído por um arquivo contendo "três" e o arquivo a
permanece não corrompido.