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
inodena 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.