Vamos supor que eu tenho dois sistemas idênticos. No primeiro sistema, criei um link simbólico. No segundo, eu quero copiar esse link simbólico via sftp e o link simbólico funcionará da mesma maneira (por exemplo, se o link simbólico for vinculado a /etc/
, após copiá-lo, apenas o link simbólico será copiado e apenas o link simbólico (não os arquivos vinculados))
Alguma idéia de como eu posso fazer isso / se eu posso fazer isso? Eu só quero copiar o link simbólico, nada mais; apenas a referência.
sftp
não vai deixar você fazer isso.rsync
pode, como podessh cp ...
Respostas:
Se você aumentar o link simbólico, poderá copiar o tarball para a máquina remota da maneira que desejar. Ao desatá-lo, você descobrirá que apenas copiou o link simbólico e nada mais. Por exemplo:
Para testar isso, primeiro criei um arquivo de texto.
Em seguida, crie um link simbólico para o arquivo e comprima-o em um tar gzip.
Transfira esse arquivo para sua outra máquina e descompacte-o:
Você descobrirá que o link simbólico está lá, mas não o arquivo original que ele apontou.
Obviamente, se você deseja transferir o arquivo original e o link simbólico, preservando o relacionamento, pode colocá-los no tarball e eles serão transferidos, e o link simbólico ainda deve estar corretamente apontado para o arquivo original quando você descompactar o tarball no local de destino.
fonte
sftp
( linux.die.net/man/1/sftp )! Existe o comandosymlink
especificamente para o que você parece precisar.Não está claro como exatamente você deseja lidar com o link simbólico. Pelo que entendi, você deseja recriar o link simbólico no outro sistema. Os links simbólicos dependem do sistema de arquivos, o protocolo usado para copiar arquivos deve estar ciente disso. Um bom exemplo é usar
rsync
com a-a
opçãomais especificamente, a
-l
opção, mas-a
provavelmente é o que você deseja.Ele recriará links simbólicos sem puxar os alvos (sem referência aos links).
fonte
sftp
atravessará subdiretórios com a-r
opção, mas não seguirá os links simbólicos, pois abstrai os sistemas de arquivos.sftp
suporta a criação de links simbólicos no host. Você deve pelo menos tentar fazer o download apenas o link simbólico (quando a ligação simbólica é~/etc
->/etc/
fazerget etc
sem a fuga/
) e ver o que acontece. Depende do FS do servidor e do cliente. Edite sua pergunta original de acordo!Eu sei que @polemon já respondeu isso.
Mas fazer o meu pouco para uma solução rápida.
Eu tive que fazer man rsync para saber qual switch eu quero usar ...
No entanto, no seu caso, você precisa garantir que os links não estejam quebrados!
fonte
Uma solução muito fácil (para o diretório inicial):
ou
por exemplo
para fornecer um .bashrc com link simbólico para outro destino (por exemplo, rede).
fonte
As outras respostas já explicam como transferir um link simbólico para outra máquina. No entanto, independentemente de como você transferir o link simbólico, você não poderá usá-lo para acessar um arquivo
/etc/
via FTP, SFTP, SCP, SSH ou qualquer outra maneira. Esses serviços tendem a ser chroot para um determinado diretório ou impedidos de fornecer acesso a arquivos que não foram explicitamente compartilhados. Obviamente, sempre há maneiras de solucionar isso em sistemas mais antigos, mas essas vulnerabilidades tendem a ser corrigidas e atualizadas assim que são encontradas. Sinto muito, não acho que o que você queira fazer seja possível.fonte