Links simbólicos são usados por dois motivos:
-
Ele mal usa espaço no disco rígido. Nos sistemas de arquivos em que os metadados são reservados durante a criação (por exemplo, a família ext2 / 3/4), os links simbólicos são totalmente contidos como
inode
na tabela de metadados do sistema de arquivos. -
É completamente transparente. Veja a explicação abaixo:
Digamos que eu, em /etc
, criei um link simbólico varlink
apontando para /var
. Com links simbólicos, posso fazer cd /etc/varlink/lib
. Se eu fizer um ls
, eu veria o conteúdo de /var/lib
(ou seja, a parte " /etc/varlink
" é "substituída" por " /var
"). Eu posso ir mais fundo para /etc/varlink/lib/dbus
, no qual verei o conteúdo de /var/lib/dbus
. No entanto, embora o que eu esteja vendo seja realmente o conteúdo do último, o $CWD
(Diretório de trabalho atual) ainda é o primeiro.
Da mesma forma, quando links simbólicos são contra arquivos. Digamos que /etc/fstab
seja um link simbólico para /opt/fstab
. Eu posso fazer toda a operação contra /etc/fstab
(por exemplo, cat
do conteúdo, ou executar sed
em relação ao seu conteúdo) sem ter que decodificá-lo primeiro para encontrar o arquivo real para o qual ele é symlinking. O sistema de arquivos nos bastidores cuidará do redirecionamento de E / S para o arquivo real.
E a resposta para a segunda pergunta: não acho que isso seja possível. Pelo menos, não via o shell.
Dentro de uma GUI, no entanto, é possível ter um programa que lida com os arquivos ".lnk" do Windows, para redirecionar o navegador de arquivos para algum outro lugar. Mas não tenho certeza se esse programa já foi feito.