A Wikipedia define um link físico como:
uma entrada de diretório que associa um nome a um arquivo em um sistema de arquivos. (Um diretório é um tipo especial de arquivo que contém uma lista dessas entradas.) O termo é usado em sistemas de arquivos que permitem a criação de vários links físicos para o mesmo arquivo.
Gostaria de saber se o conceito de link físico é equivalente ao conceito de atalho do Windows .
Se links físicos não equivalem a atalhos, qual é o recurso mais próximo do Windows para links físicos?
Respostas:
Não, um link físico é completamente diferente. Um link virtual está mais próximo de um atalho do Windows (embora existam diferenças importantes, os links simbólicos são mais semelhantes aos atalhos do Windows do que os links físicos). Um link físico é uma coisa diferente e quase nunca será necessária.
Resumidamente, um link virtual é criado com este comando:
Se você executar
ls -l
, verá:O
->
meio quebar
é um link parafoo
. Portanto, a aberturabar
, com um editor de texto, por exemplo, abrirá o arquivo separadofoo
. No entanto, a exclusãobar
apenas excluirá o atalho, não afetará o arquivofoo
.Os links físicos, por outro lado, são criados com este comando:
Se você executar agora
ls -l
, não há indicação de nenhum relacionamento entre os arquivos:Mas - e isso é muito importante - esses são realmente o mesmo arquivo . Arquivos em sistemas de arquivos Unix são armazenados usando inodes ; um inode é basicamente a maneira como o sistema de arquivos mapeia um nome de arquivo para um local específico no disco rígido físico. Portanto, links físicos são arquivos que apontam para o mesmo inode que seu destino. Outra maneira de colocar isso é que todos os arquivos são realmente links físicos apontando para seus inodes. Criar um link direto para um arquivo apenas cria um novo ponteiro (arquivo) no sistema de arquivos que aponta para o mesmo inode. Cada inode pode ter vários arquivos apontando para ele ou um, ou nenhum.
Para entender isso mais claramente, use o
ls -i
que mostra o inode associado a um arquivo. Vamos criar um link virtual e um link físico e ver o que acontece:Agora, verifique seus inodes:
Como você pode ver acima, ambos
foo
eHardLinkToFoo
têm o mesmo inode (16648029), enquanto o SoftLinkToFoo possui um diferente (16648036).O que acontece se renomearmos
foo
commv foo bar
?A cor vermelha indica um link flexível quebrado, cujo alvo não pode mais ser encontrado. Isso ocorre porque os links flexíveis apontam para o nome de um arquivo, não para o seu inode. Observe que, apesar de alterar o nome, o inode permanece o mesmo, portanto o hardlink está correto e ainda funciona.
Em resumo, links físicos são na verdade duas manifestações do mesmo arquivo; eles são ponteiros para a mesma seção do disco. Links flexíveis são apenas atalhos. Para fazer uma analogia no mundo real, os hardlinks são como dois números de telefone diferentes para a mesma linha telefônica e os soft links são como ter duas linhas telefônicas diferentes na mesma casa.
fonte
rm
ouunlink()
) de um link físico apenas diminui a contagem de links até que a contagem atinja zero, quando os blocos ocupados pelo conteúdo do arquivo são liberados. Não tenho certeza de que dizer "links físicos são na verdade duas instâncias do mesmo arquivo" está estritamente correto, pois os dois nomes apontam para o mesmo inode e, portanto, o mesmo conteúdo, em vez de haver duas instâncias do arquivo em si. qualquer sentido.Há uma boa explicação sobre o que são links flexíveis e físicos, mas uma coisa precisa ser esclarecida.
Do Windows atalhos são equivalentes ou similares a nem soft links , nem links de disco rígido . No nível do sistema de arquivos, são apenas arquivos. É o shell que entende sua estrutura e as interpreta como links. Os atalhos do Windows também podem apontar para objetos nos namespaces do shell que não estão relacionados ao sistema de arquivos (impressoras, itens do painel de controle, pastas virtuais).
Os atalhos do Windows, além do nome do objeto do sistema de arquivos, contêm as seguintes informações: PIDL ("caminho binário opaco" no espaço de nome do shell), descrição, tecla de atalho, ícone, diretório de trabalho. O Windows também adiciona identificadores de objeto NTFS se o sistema de arquivos NTFS for usado, para corrigir atalhos quebrados.
O equivalente aproximado de um atalho do Windows é um arquivo .desktop . Veja esta pergunta no SuperUser: Existe um equivalente a .lnk no Linux?
fonte
Não. No Linux, as coisas funcionam de maneira diferente.
Cada arquivo é representado por um objeto chamado 'inode'. Todo inode possui um número (ID) associado a ele.
Como sabemos, os humanos não são bons em lembrar números, mas nomes. (Foi assim que as agendas telefônicas evoluíram)
Portanto, o nome do arquivo entrou na imagem para dar a cada inode um nome legível por humanos. Basicamente, um hardlink vincula um nome de arquivo a um inode. Um inode pode ter vários hardlinks. Se não houver hardlinks presentes para um inode específico, o espaço em disco usado pelo inode poderá ser realocado para novos arquivos. O que significa que pelo menos um link físico deve ser apresentado para cada arquivo. O nome do arquivo (visualizado como o nome do arquivo / ícone que você vê no navegador de arquivos) é um link físico.
No Windows, o atalho é um arquivo separado (arquivo * .lnk). Ele contém informações sobre o arquivo original (compreensivelmente o caminho do arquivo). Na percepção do Linux, um atalho do Windows seria outro inode vinculado a um nome de arquivo que termina com '.lnk'.
fonte
No Windows, você também pode criar links físicos se tiver um sistema de arquivos NTFS.
Os arquivos devem estar na mesma unidade lógica.
fonte
subst
comando. Uma ferramenta pode não saber / cuidar disso e, assim, se recusar a criar um link físico. Uma coisa muito útil é a Extensão do Shell de Link, que permite ao explorador criá-los.Uma grande diferença: o link físico não pode ser criado para pastas, mas para arquivos.
Sua pergunta deve ser a diferença entre link simbólico ou link virtual e atalho .
conforme isso:
Portanto, quando você clica em um atalho, o diretório é alterado para o arquivo real, enquanto o soft-link se refere à sua localização como se fosse o arquivo real. Para isso, no Linux, você pode usar terminal e cd em links simbólicos, enquanto não pode usar cd em atalhos .
Um atalho do Windows e um iniciador do Linux (apontando para algum local) seriam idênticos.
fonte