Skip to content
Latchkey

O Que É um Link Simbólico? Um Ponteiro para Outro Caminho

Um link simbólico, ou symlink, é um arquivo especial que aponta para outro arquivo ou diretório pelo seu caminho, atuando como um atalho transparente.

Um link simbólico é um pequeno arquivo cujo conteúdo é apenas um caminho para outra localização. Quando você acessa o symlink, o SO o segue até o alvo. Symlinks aparecem no CI para coisas como gerenciadores de versão de ferramentas e layouts de node_modules, e têm peculiaridades que vale a pena conhecer, especialmente em torno de cache e arquivamento.

O que é um symlink

Um symlink armazena um caminho para um alvo. Ler ou escrever através do symlink redireciona para esse alvo. Se o alvo for movido ou excluído, o symlink fica "pendurado" (dangling) e aponta para lugar nenhum.

Criando um

Você cria um symlink com ln -s target linkname. A flag -s significa simbólico; sem ela você criaria um hard link, que é algo totalmente diferente.

Symlink versus hard link

  • Um symlink aponta para um caminho e pode cruzar sistemas de arquivos.
  • Um symlink pode ter como alvo um diretório; um hard link geralmente não pode.
  • Se o alvo for excluído, um symlink fica pendurado, mas um hard link ainda funciona.

Onde symlinks aparecem

Gerenciadores de versão como o nvm fazem symlink da toolchain ativa; layouts de pacotes às vezes fazem symlink de dependências compartilhadas. Eles permitem que muitas referências compartilhem uma localização real sem copiar.

Symlinks no CI

Cache e arquivamento de artifacts podem lidar mal com symlinks, seja seguindo-os e duplicando dados, seja quebrando-os para que fiquem pendurados. Quando um diretório em cache contém symlinks, verifique se sobrevivem à restauração do cache, ou builds podem falhar misteriosamente.

Links em runners gerenciados

Nos runners Latchkey, symlinks se comportam como em qualquer sistema de arquivos Linux. Se o seu cache de dependências depende de symlinks, confirme que o cache os preserva para que builds restaurados resolvam para os alvos corretos.

Principais conclusões

  • Um link simbólico é um arquivo que aponta para outro caminho, como um atalho.
  • Crie um com ln -s; ele fica pendurado se o alvo desaparecer.
  • No CI, cache e arquivamento podem quebrar symlinks, então verifique se sobrevivem.

Guias relacionados