Por que usar hardlinks vs. links simbólicos
Existem basicamente 3 vantagens de usar links de hardware sobre links simbólicos neste cenário.
Hard links
- Com um link físico, o link aponta para o inode diretamente.
- Os hard links são como ter várias cópias do executável, mas usam apenas o espaço em disco de um.
- Você pode renomear qualquer ramificação do link físico sem quebrar nada.
Links simbólicos
- O link aponta para o objeto (que, por sua vez, aponta para o inode).
- Eles podem abranger sistemas de arquivos, enquanto hardlinks não podem.
Vantagens da vinculação em geral
Esses links existem porque muitos executáveis se comportam de maneira diferente com base em como foram chamados. Por exemplo, os dois comandos bzless
e bzmore
são, na verdade, um único executável, bzmore
. O executável se comportará de maneira diferente, dependendo de quais nomes foram usados para invocá-lo.
Isso é feito por vários motivos. Aqui estão algumas das mais óbvias:
- Mais fácil desenvolver um único executável do que muitos
- economiza espaço em disco
- Mais fácil de implantar
Por que ambos estão sendo usados?
A escolha de qualquer um, neste aplicativo específico, é discutível. Qualquer um deles pode facilitar o recurso de agir como um alias para que um único executável possa ser sobrecarregado. Essa é realmente a principal característica que está sendo explorada pelos desenvolvedores dos vários programas aqui.
Ao olhar para o FHS (Filesystem Hierarchy Standard) , ele também especifica Desta forma, que pode ser qualquer um.
trecho
If /bin/sh is not a true Bourne shell, it must be a hard or symbolic link to the real shell command.
The rationale behind this is because sh and bash mightn't necessarily behave in the same manner. The use of a symbolic link also allows users to easily see that /bin/sh is not a true Bourne shell.
...
...
If the gunzip and zcat programs exist, they must be symbolic or hard links to gzip. /bin/csh may be a symbolic link to /bin/tcsh or /usr/bin/tcsh.