Claro que sim. Se você executar, ln -s
criará um link simbólico, que é um inode apontando para um determinado objeto do sistema de arquivos, e é por isso que os links simbólicos podem atravessar os sistemas de arquivos e os links físicos não: os links físicos não têm seu próprio inode.
Se você montar um sistema de arquivos --bind
, criará um segundo ponto de montagem para um dispositivo ou sistema de arquivos.
Se você visualizar um link simbólico como um redirecionamento, visualize um --bind
sistema de arquivos montado como criando outro gateway para dados.
Symlinks e montagens de ligação são um jogo totalmente diferente.
A --bind
montagem parece um pouco mais robusta para mim e provavelmente é um pouco mais rápida do que trabalhar com um link simbólico. Por outro lado, não há desvantagens sérias no uso do link simbólico, pois o impacto no desempenho será pequeno (se houver).
Edit : Eu estive pensando sobre isso, e o impacto no desempenho pode ser um pouco maior do que eu pensava originalmente. Se você tiver um aplicativo que lê muitos arquivos diferentes, todos os novos arquivos abertos exigirão uma leitura extra. Algumas pesquisas aqui sugerem que minha suposição está correta; portanto, se você tiver um aplicativo pesado de E / S em execução lá, considere a --bind
opção de montar acima da solução de link simbólico.
O motivo pelo qual isso não é comum é provavelmente o fato de um link simbólico estar visível em um ls
, enquanto um mount de ligação é visível apenas quando se olha para / proc / mounts ou / etc / mtab (que é o que o comando mount faz, se for executado sem parâmetros). Fora isso, acho que não há problemas. Eu estaria interessado se houver, no entanto.
Além disso : outro problema ln -s
é que, para alguns aplicativos, quando o caminho é desreferenciado, o aplicativo pode ser recusado se "esperar" que determinados itens estejam em locais específicos.
mount
, quando chamado sem argumentos, imprime o conteúdo de/etc/mtab
, que possui informações ligeiramente diferentes de/proc/mounts
. (Em particular,/proc/mounts
(ligação simbólica para/proc/self/mounts
) sempre mostra os pontos de montagem visíveis para o processo de lê-lo.)Uma das grandes diferenças entre
ln -s
e uma montagem de ligação é que você pode usar uma montagem de ligação para "modificar" um sistema de arquivos somente leitura. Por exemplo, se houvesse um CD montado/mnt/application
e você desejasse substituir/mnt/application/badconfigfile.conf
por uma versão correta, você poderia fazer o seguinte:Não seria possível afetar a mesma alteração usando um link simbólico, porque você não pode modificar o sistema de arquivos de destino.
Isso também pode ser usado com bons efeitos se você distribuiu um conjunto comum de software via NFS (ou algum tipo de sistema de arquivos em cluster) e deseja fazer alterações específicas do host em um sistema. Você pode simplesmente usar uma montagem de ligação no sistema de destino para substituir os arquivos ou diretórios conforme necessário.
fonte
Diferença prática # 1 para mim entre ln -s e mount --bind:
O vsftpd não permite procurar um diretório através de um link simbólico, mas permite quando montado.
Não sei qual daemon você está usando, mas pode se comportar da mesma forma.
fonte
Pode-se notar que, como conseqüência da ligação a uma montagem, que é ela própria uma ligação, que é recuperada posteriormente, a ligação original permanece intacta, assumindo que tudo permanece fisicamente conectado.
Ou seja, se vincular A a B e vincular B a C e, em seguida, vincular D a B, C ainda estará vinculado a A. Isso pode ser o que você deseja ou não. Se alguém deseja que C siga B, remonte usando os mesmos alvos, ou seja
mount -o remount B C
, ou use em seu--rbind
lugar. Não há--rebind
opção.fonte