Eu entendo o que é um diretório de trabalho lógico. Quando você cria um link simbólico para um diretório e, em seguida, cd
para esse diretório usando o link simbólico, seu diretório de trabalho lógico se tornao caminho do link simbólico + o próprio link simbólico! por exemplo:
$ pwd
/home/john/this_is_a_symbolic_link
Mas qual é exatamente o benefício de um diretório de trabalho lógico?
Responder1
Um caso de uso um tanto complicado:
Em alguns sistemas, os diretórios pessoais dos usuários podem, por exemplo, ser montados por ummontador automático(como no Solaris).
Deo artigo "Automounter" da Wikipedia:
O automounter tem o propósito de conservar os recursos do sistema local e de reduzir o acoplamento entre sistemas que compartilham sistemas de arquivos com vários servidores. Por exemplo, uma organização de grande a médio porte pode ter centenas de servidores de arquivos e milhares de estações de trabalho ou outros nós acessando arquivos de qualquer número desses servidores a qualquer momento. Normalmente, apenas um número relativamente pequeno de sistemas de arquivos remotos (exportações) estará ativo em qualquer nó em um determinado momento. Adiar a montagem de tal sistema de arquivos até que um processo realmente precise acessá-lo reduz a necessidade de rastrear tais montagens, aumentando a confiabilidade, a flexibilidade e o desempenho.
O montador automático pode montar um home
compartilhamento NFS de algum servidor de arquivos central em um caminho como /a
ou /tmp_mnt
ou semelhante e, em seguida, criar um link simbólico de /tmp_mnt/home/steve
(o diretório inicial físico) para /home/steve
(o diretório inicial lógico) quando você efetuar login.
Isso tem a vantagem, como menciona o artigo da Wikipedia, de exigir apenas uma única montagem do home
compartilhamento NFS, mesmo se vários usuários estiverem ativos. Quando o diretório inicial de alguém não estiver mais em uso, o link simbólico poderá ser removido e, quando todos os usuários estiverem desconectados, o compartilhamento NFS montado poderá até ser desmontado completamente.
Um exemplo mais simples:
Digamos que você fique sem espaço no /usr/local
. Você pode então adicionar novos discos e montá-los como, por exemplo, /data/disk1
e /data/disk2
. Então você pode decidir copiar o conteúdo antigo de /usr/local/bin
to /data/disk1
e /usr/local/lib
to /disk/data2
e recriar /usr/local/bin
e /usr/local/lib
como links simbólicos para esses dois diretórios.
Alterar o diretório com cd /usr/local/bin
moveria você fisicamente para, /data/disk1
mas logicamente você estaria em /usr/local/bin
. Isso também tem o efeito de que o acesso aos utilitários /usr/local/bin
acessaria de forma transparente sua localização física, /data/disk1
sem que você precise atualizar sua $PATH
variável.
Outro:
Você pode criar um link simbólico a partir de um pendrive montado pelo usuário ou outro dispositivo de armazenamento em algum lugar /media
como /home/steve/my_work_files
. A vantagem disso seria que você seria capaz de cd
entrar ~/my_work_files
em vez de ter que lembrar onde /media
seus arquivos estão localizados.
Responder2
$ cd this_is_a_symbolic_link
…
$ pwd
$ cd ..