Criação de links simbólicos


A opção -s do comando ln cria um link simbólico, também chamado de “link soft”.

Um link simbólico não é um arquivo normal, mas um tipo especial de arquivo que aponta para outro arquivo ou diretório existente.

Os links simbólicos têm algumas vantagens sobre links físicos:

  • Podem vincular dois arquivos em diferentes sistemas de arquivos
  • Podem apontar para um diretório ou arquivo especial, não apenas um arquivo comum.

No exemplo a seguir, o comando ln -s cria um link simbólico para o arquivo /home/user/newfile-link2.txt. O nome do link simbólico é /tmp/newfile-symlink.txt.

[user@host ~]$ ln -s /home/user/newfile-link2.txt /tmp/newfile-symlink.txt
[user@host ~]$ ls -l newfile-link2.txt /tmp/newfile-symlink.txt
-rw-rw-r--. 1 user user 12 Mar 11 19:19 newfile-link2.txt
lrwxrwxrwx. 1 user user 11 Mar 11 20:59 /tmp/newfile-symlink.txt -> /home/user/newfile-link2.txt
[user@host ~]$ cat /tmp/newfile-symlink.txt
Symbolic Hello World

No exemplo anterior, o primeiro caractere da listagem longa (ls -l) para /tmp/newfile-symlink.txt é l (letra l), em vez de -. Esse caractere indica que o arquivo é um link simbólico e não um arquivo normal.

Quando o arquivo regular original é excluído, o link simbólico continua apontando para o arquivo, mas o destino não existe mais. Um link simbólico que aponta para um arquivo ausente é chamado de “link simbólico pendente”.

[user@host ~]$ rm -f newfile-link2.txt
[user@host ~]$ ls -l /tmp/newfile-symlink.txt
lrwxrwxrwx. 1 user user 11 Mar 11 20:59 /tmp/newfile-symlink.txt -> /home/user/newfile-link2.txt
[user@host ~]$ cat /tmp/newfile-symlink.txt
cat: /tmp/newfile-symlink.txt: No such file or directory

Um efeito colateral do link simbólico pendente no exemplo anterior é que, se você, posteriormente, criar um novo arquivo com o mesmo nome do arquivo excluído (/home/user/newfile-link2.txt), o link não estará mais “pendurado” e apontará para o novo arquivo. Os links físicos não funcionam assim. Se você excluir um link físico e, em seguida, usar ferramentas normais (ao invés de ln) para criar um arquivo com o mesmo nome, o novo arquivo não será vinculado ao arquivo antigo. Considere a seguinte maneira de comparar links físicos e links simbólicos, para entender como eles funcionam:

  • Um link físico aponta um nome para dados em um dispositivo de armazenamento.

  • Um link simbólico aponta um nome para outro nome, que aponta para dados em um dispositivo de armazenamento.

Um link simbólico pode apontar para um diretório. Nesse caso, o link simbólico atuará como o diretório. Se você usar cd para alterar para o link simbólico, o diretório de trabalho atual se tornará o diretório vinculado. Algumas ferramentas podem acompanhar o fato de você ter seguido um link simbólico para chegar lá. Por exemplo, por padrão cd atualiza seu diretório de trabalho atual usando o nome do link simbólico, em vez do nome do diretório real. Se você quiser atualizar o diretório de trabalho atual usando o nome do diretório real, poderá usar a opção -P.

O exemplo a seguir cria um link simbólico denominado /home/user/configfiles que aponta para o diretório /etc.

[user@host ~]$ ln -s /etc /home/user/configfiles
[user@host ~]$ cd /home/user/configfiles
[user@host configfiles]$ pwd
/home/user/configfiles
[user@host configfiles]$ cd -P /home/user/configfiles
[user@host etc]$ pwd
/etc

Referências