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