Quando você executa o comando
$ ./hello2
o shell pesquisa o arquivo hello2 no diretório . , ou seja, no diretório atual . Em seguida, ele executa o script ou o binário de acordo com algumas regras (que não são interessantes nesse contexto).
O comando
$ ././hello2
também faz com que o shell execute o arquivo.
Isso ocorre porque . e ./. é o mesmo diretório.
Todo diretório possui uma entrada de diretório . . Esta entrada corresponde ao próprio diretório. Então, dizer ./ é o mesmo que dizer ././ e ././././ etc.
A única diferença é que o sistema pode ter que fazer algumas pesquisas de diretórios extras (a menos que o shell seja inteligente e identifique a simplificação óbvia).
Todo diretório também possui uma entrada .. que aponta para seu diretório pai .
Isso significa que se o diretório atual for chamado alamin , o seguinte também executaria o arquivo:
$ ../alamin/hello2
como seria
$ ../alamin/./hello2
e
$ .././alamin/./hello2
O diretório raiz, / , é um caso especial. Sua entrada de diretório .. é igual à entrada de diretório . . Isso significa que você não pode ir "acima" com /.. .
Veja também: O número de links para uma pasta não reflete o status real?