Artigo original: Symlink Tutorial in Linux – How to Create and Remove a Symbolic Link
Um symlink (também chamado de link simbólico) é um tipo de arquivo no Linux que aponta para outro arquivo ou diretório em seu computador. Os symlinks são semelhantes aos atalhos no Windows.
Alguns chamam os symlinks de "soft links" – um tipo de link nos sistemas Linux/UNIX – em oposição aos "hard links."
Diferença entre um soft link e um hard link
Os soft links lembram os atalhos, podendo apontar para outro arquivo ou diretório em qualquer sistema de arquivos.
Os hard links também são atalhos para pastas e diretórios, mas um hard link não pode ser criado para um arquivo ou diretório em um sistema de arquivos diferente.
Vamos ver os passos envolvidos na criação e remoção de um symlink. Também veremos o que são links quebrados e como excluí-los.
Como criar um symlink
A sintaxe para a criação de um symlink é:
ln -s <caminho para o arquivo/diretório a ser vinculado> <caminho do link a ser criado>
ln
é o comando para links. A flag -s
especifica que o link tem de ser um soft link. O -s
também pode ser inserido como -symbolic
.
Por padrão, o comando ln
cria hard links. O próximo argumento é o caminho para o arquivo ou diretório
para onde você quer fazer um link (ou seja, o arquivo ou diretório para o qual você quer criar um atalho).
O último argumento é o caminho para o link
em si (o atalho).
Como criar um symlink para um arquivo – comando de exemplo
ln -s /home/james/transactions.txt trans.txt
Após executar esse comando, você poderá acessar o arquivo /home/james/transactions.txt
usando trans.txt
. Qualquer modificação feita em trans.txt
será refletida no arquivo original.
Observe que esse comando acima criará o arquivo de link trans.txt
em seu diretório atual. Também é possível criar um arquivo vinculado em um diretório assim:
ln -s /home/james/transactions.txt my-stuff/trans.txt
Deve haver um diretório chamado "my-stuff" no seu diretório atual – do contrário, o comando lançará um erro.
Como criar um symlink para um diretório – comando de exemplo
Da mesma forma que acima, podemos usar:
ln -s /home/james james
Isso criaria um diretório vinculado por symlink chamado 'james', que teria o conteúdo de /home/james
. Quaisquer mudanças a este diretório vinculado também afetarão o diretório original.
Como remover um symlink
Antes de querer remover um symlink, confirme se o arquivo ou o diretório é um symlink, para não bagunçar seus arquivos.
Uma maneira de fazer isso é:
ls -l <caminho do suposto symlink>
Ao executar esse comando no seu terminal, serão exibidas as propriedades do arquivo. No resultado, se o primeiro caractere for uma letra L minúscula ('l'), significa que o arquivo/diretório é um symlink.
Você também verá uma seta (->) ao final indicando o arquivo/diretório para o qual o symlink aponta.
Há dois métodos de remover um symlink:
Como usar unlink para remover um symlink
A sintaxe é:
unlink <caminho para o symlink>
Isso exclui o symlink se o processo tiver êxito.
Mesmo se o symlink estiver na forma de um diretório, não inclua '/', pois o Linux assumirá que é um diretório e unlink
não pode excluí-los.
Como usar rm para remover um symlink
Como vimos, um symlink é apenas outro arquivo ou diretório que aponta para um arquivo ou diretório original. Para remover essa relação, é possível remover o arquivo vinculado.
Assim, a sintaxe é:
rm <caminho para o symlink>
Por exemplo:
rm trans.txt
rm james
Observe que tentar executar rm james/
resultaria em um erro, pois o Linux assumirá que 'james/' é um diretório, o que exigiria outras opções, como r
e f
. No entanto, não é isso que queremos. Um symlink pode ser um diretório, mas estamos interessados apenas no nome.
O benefício principal de rm
com relação a unlink
é o fato de você poder remover diversos symlinks ao mesmo tempo, do mesmo jeito que você remove arquivos.
Como encontrar e excluir links quebrados
Links quebrados ocorrem quando o arquivo ou o diretório para o qual um symlink aponta muda de caminho ou é excluído.
Por exemplo, se 'transactions.txt' mudasse de /home/james
para /home/james/personal
, o link 'trans.txt' estaria quebrado. Qualquer tentativa de acessar o arquivo resultaria em um erro 'No such file or directory' (O arquivo ou diretório não existe). Isso ocorre porque o link não tem conteúdo próprio.
Ao descobrir links quebrados, você pode excluir o arquivo com facilidade. Um modo fácil de excluir symlinks quebrados é:
find /home/james -xtype l
Isso listará todos os symlinks quebrados no diretório james
– de arquivos, diretórios e subdiretórios.
Ao passar a opção -delete
, você os excluirá, dessa forma:
find /home/james -xtype l -delete
Para concluir
Os links simbólicos são um recurso interessante dos sistemas Linux e UNIX.
Você pode criar symlinks facilmente acessíveis para que eles façam referência a um arquivo ou diretório que, do contrário, não seria de fácil acesso. Com um pouco de prática, você entenderá como eles funcionam em um nível mais intuitivo e eles o deixarão ser muito mais eficiente no gerenciamento de sistemas de arquivos.