Posted By Massashi
LINK SIMBÓLICO E HARDLINK

O link é um mecanismo que faz referência a outro arquivo ou diretório em outra localização. Os links são arquivos especiais e podem ser identificados com um “l” quando executado o comando: “ls -la”.

Exemplo:

$ ls -la
lrwxr-xr–  1 roberto    roberto     5 2006-10-12 22:40 link -> teste.txt

Veja abaixo a descrição do dois tipos de links existentes no Linux.

TIPO SIMBÓLICO

No link tipo simbólico, o link é um arquivo especial de disco do tipo link, que tem como conteúdo o caminho para chegar até o arquivo alvo.

Características:

  • Pode-se fazer links simbólicos em arquivos e diretórios;
  • O link simbólico e o arquivo alvo não precisam estar na mesma partição de disco;
  • Se o link simbólico for apagado/movido. Somente o link será apagado/movido;
  • Qualquer usuário pode criar/desfazer um link simbólico (respeitando as permissões).

TIPO HARDLINK

No link tipo hardlink, o link é apontado para o mesmo inode do arquivo alvo, sendo assim, os dois arquivos serão o mesmo.

Características:

  • Não é possível fazer um hardlink para um diretório;
  • Somente é possível fazer hardlink em arquivos que estejam em uma mesma partição de disco;
  • Se o hardlink for apagado/movido, você estará apagando/movendo o arquivo alvo;
  • Somente o usuário root pode criar/desfazer hardlinks.

CRIANDO LINKS

O comando ln é utilizado para criar links entre dois arquivos ou para um diretório.

Sintaxe:

ln [OPÇÕES]... [-T] ALVO NOME_LINK   (1a forma)
ln [OPÇÕES]... ALVO                  (2a forma)
ln [OPÇÕES]... ALVO... DIRETÓRIO     (3a forma)
ln [OPÇÕES]... -t DIRETÓRIO ALVO...  (4a forma)

Explicando:

  • ALVO: Diretório ou arquivo de onde será feito o link;
  • NOME_LINK: Nome do link que será criado;
  • OPÇÕES:
    -s
        Cria um link simbólico.
    -v
        Modo verbose.

Exemplos:

1 – Criando um link simbólico chamado “emulador” para o diretório /home/roberto/download/emulador_n64/:

$ ln -s /home/roberto/download/emulador_n64/ emulador

Note que o link simbólico é identificado com o “l” no início.

$ ls -lah | grep emulador lrwxrwx–x  1 roberto    roberto      36 2006-10-12 22:42 emulador -> /home/roberto/download/emulador_n64/

2 – Criando um hardlink chamado “texto.txt” apontando para o arquivo “alvo_hardlink.txt”:

$ ln alvo_hardlink.txt texto.txt

Note que o arquivo “alvo_hardlink.txt” e o arquivo texto.txt possuem o mesmo Inode e o mesmo Device.

$ stat alvo_hardlink.txt | grep Inode
Device: 304h/772d       Inode: 3057948     Links: 2

$ stat texto.txt | grep Inode
Device: 304h/772d       Inode: 3057948     Links: 2

credito: https://www.vivaolinux.com.br/dica/Link-simbolico-e-hardlink