A execução de xx
pesquisa os diretórios listados na variável de ambiente PATH
para um arquivo chamado xx
. O primeiro executável encontrado (seja um binário ou um script) é executado. Ele não procura no diretório atual, a menos que .
esteja listado em PATH
, o que é não recomendado.
A execução de ./xx
executa o arquivo chamado xx
que está localizado no diretório atual, se houver um arquivo executável com esse nome.
Para executar um arquivo especificando seu local , você deve incluir um símbolo /
. Se não houver /
no comando (na verdade, a primeira palavra do comando, que é o que identifica o nome do arquivo a ser executado), ele procura PATH
por ele. Se houver um /
, a primeira palavra do comando será usada para se referir a um arquivo específico por localização.
Assim, ./xx
é diferente de xx
devido ao /
que contém.
É claro que /xx
não funcionaria corretamente - tentaria executar um arquivo chamado xx
localizado no diretório raiz, /
. Como .
representa o diretório atual, ./xx
runs xx
there.