Quando você emite um comando, seu shell faz um truque para parecer que você pode simplesmente chamar o comando sem especificar seu caminho completo. O shell procura o comando em cada um dos diretórios listados na variável de ambiente $PATH
e, se for localizado, organiza a execução do comando.
Se você deseja executar um comando que não esteja em um dos diretórios em $PATH
, é necessário fornecer ao shell uma dica onde encontrar o arquivo. No seu caso de exemplo, como /home/uname/code
não está em $PATH
, você precisa fornecer ao shell informações suficientes sobre o caminho para localizar o arquivo que deseja executar. Isso é verdade se o seu diretório de trabalho atual for o diretório onde o arquivo está localizado ou em qualquer outro diretório. Se você estiver no mesmo diretório que o arquivo que deseja executar, o ./
antes do nome do arquivo é suficiente para informar ao shell onde encontrar o arquivo.