Eles são realmente um e o mesmo:
~$ ls -lah /sbin | grep dhclient
lrwxrwxrwx 1 root root 9 2010-12-30 14:38 dhclient -> dhclient3
-rwxr-xr-x 1 root root 402K 2010-08-07 04:49 dhclient3
A seta indica que dhclient é um Link simbólico que aponta para dhclient3 . Nós podemos usar
test -h /sbin/dhclient
echo $?
para se certificar de que é; ele retornará 0 , significando sim.
Às vezes, isso é feito para manter a compatibilidade com programas e scripts mais antigos que assumem o comando antigo.
Se você estiver escrevendo um programa que use um desses, use dhclient3 e gerencie suas dependências de acordo.
Em ls -lah , os argumentos significam l no formato de listagem ong, a ll arquivos e h uman tamanhos de arquivo legíveis. Além disso, test não tem nada a ver com links simbólicos, é um utilitário geral para testar a verdade de uma instrução, o argumento -h faz com que funcione em arquivos e retorna True (0) se o arquivo existir e é um link simbólico .
Para descobrir onde o arquivo está, usei o utilitário type :
type dhclient
dhclient is hashed (/sbin/dhclient)
Se você encontrar dois arquivos que não estejam simbolicamente vinculados e suspeitar que eles ainda são os mesmos, use uma Função de hash para ver se são as mesmas:
stefano@lenovo:~$ md5sum /sbin/dhclient && md5sum /sbin/dhclient3
fc2491e5c1576783bdc4aa8c5817166e /sbin/dhclient
fc2491e5c1576783bdc4aa8c5817166e /sbin/dhclient3