Um link simbólico / virtual é semelhante a um atalho / alias em uma área de trabalho?

19

Parece-me que a idéia básica de links simbólicos / flexíveis em comparação com atalhos (em um PC) ou aliases (em um Mac) é a mesma coisa. Estou longe? Eles são semelhantes?

Marty
fonte

Respostas:

14

A idéia básica é a mesma. Um link simbólico é um arquivo especial que contém um caminho (relativo ou absoluto) para outro objeto do sistema de arquivos. No UNIX / Linux, o próprio sistema operacional processa o link simbólico, resolvendo para o objeto real de forma transparente.

Nos Macs, um alias parece ser uma construção especial do Finder que pode fazer referência a objetos remotos e locais, mas o Finder resolve a referência, não o SO. O MacOS X também possui links simbólicos, mas são separados de aliases.

A grande diferença está entre um atalho do Windows e um link simbólico. Um atalho do Windows não pode substituir facilmente um programa porque o Windows sempre precisa ter essas extensões de arquivo traquinas e um arquivo "lnk" não é executável quando se trata do Windows. Dentro da GUI, ele funciona, mas do ponto de vista do servidor, ele vomita. O mesmo com um diretório. Eles são úteis, mas não possuem nem de longe o poder e a flexibilidade de um link simbólico.

Arcege
fonte
"O mesmo com um diretório": você quer dizer que não é possível cd em um link simbólico apontando para um diretório?
dash17291
2
Significando que você não pode usar um atalho em um sistema Windows, pois é uma construção do Windows, não um DOS. Com o UNIX / Linux, é uma construção do sistema de arquivos, portanto funciona em qualquer lugar, incluindo o cdcomando - cabe ao comando interpretar o ponto final, não o SO. Por exemplo, cdpoderia usar um link simbólico para um diretório, mas falharia corretamente em um link simbólico para um arquivo regular.
Arcege
7

Na verdade não. Há uma semelhança, mas apenas até certo ponto. Conheço pessoas que pensam “ok, links simbólicos são como atalhos, mas eu não os entendo direito” até o ponto em que eles disseram “ah, na verdade links simbólicos não são como atalhos, e agora eu os entendo”. Portanto, acho que os atalhos não são uma boa maneira de entender os links simbólicos e recomendo que você se lembre da comparação com os atalhos.

Um link simbólico indica o nome de outro arquivo. Esse é "nome", como no caminho completo, ou seja, inclui potencialmente uma parte do diretório, bem como o nome dentro do diretório. O caminho pode ser absoluta ( /foo/bar) ou relativa ( foo/barou ../barou apenas bar); se o destino é dado por um caminho relativo, é interpretado em relação ao diretório que contém o link simbólico. O arquivo de destino pode ou não existir, e remover, mover ou criar o arquivo de destino não afetará o link simbólico.

As operações que atuam no conteúdo do arquivo atuam no arquivo de destino. Portanto, quando você lê ou grava em um arquivo através de um link simbólico ou executa um programa através de um link simbólico, é como se estivesse acessando o arquivo de destino. As operações que atuam em um arquivo de fora, como renomear ou excluir, atuam no próprio link simbólico. Observe que, para escrever, faz diferença se você sobrescreve o arquivo existente (que atuará no destino) ou remove o arquivo existente e cria um novo arquivo (que deixa o destino intacto e cria um novo arquivo substituindo o link simbólico, a menos que o aplicativo cuida de seguir o link (muitos fazem)).

Gilles 'SO- parar de ser mau'
fonte
1
Um link simbólico nem sempre constitui um caminho completo: no meu sistema Slackware 13.1, /usr/lib/libXv.so é um link simbólico para libXv.so.1.0.0. Não há caminho completo lá.
precisa saber é o seguinte