O primeiro ponto principal é que ./
especifica o diretório atual ou de trabalho, ou seja, o diretório em que você está agora, que também é aquele que você vê se digitar o comando pwd
(print working directory) . Tendo isso em mente, o bash funciona de duas maneiras:
-
Se você especificar um executável vazio, como
adb
, em que nenhum diretório é fornecido, o bash pesquisará os diretórios listados no PATH do sistema para um executável desse nome e executará o primeiro executável que encontrar.Para ver quais diretórios estão no sistema PATH, execute
echo $PATH
-
Se você especificar um executável com um diretório, como
./
no seu caso, o bash procurará apenas um executável nesse diretório. Se não estiver lá, ele pára com um erro.
No seu caso, você estava na pasta DEV/ADT/sdk/platform-tools
onde o executável, adb
, estava localizado. Então, quando você digita ./adb
, o bash procura por adb
no diretório atual e, se o encontrar, ele o executa.
Como alternativa, quando você digita adb
, o bash examina os diretórios no PATH. Como DEV/ADT/sdk/platform-tools
aparentemente não está no PATH, ele não encontra o executável e reclama.
Geralmente, as pessoas evitam esse problema colocando o diretório atual em seu PATH por meio de algo como:
PATH="$PATH:."
Depois disso, quando você digitar o nome do executável, como adb
, o bash irá procurá-lo, como antes, ao longo do PATH. Mas como o PATH agora inclui o diretório atual, ele também aparecerá lá.
A adição de .
ao PATH é comumente feita para usuários pessoais. Como é mais perigoso quando o root executa o executável incorretamente, isso geralmente não é feito para o root.