0

Why is it that some bash programs will only run on my system when I type ./ before their name?

An example: In my [...]/android/sdk folders I have to execute adb like this:

./adb devices

Why not just adb devices?

3
  • tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_01.html Commented Jul 2, 2014 at 0:49
  • 1
    This has just got to be a dupe. Commented Jul 2, 2014 at 1:12
  • What is missing from many answers is that this is a relative path made out of a reference the current directory file (.) and the rest of the path from that point, in the context of pathname resolution. Commented Jul 2, 2014 at 1:36

2 Answers 2

0

If you run

echo $PATH

you will see a list of directories that your system will search for commands to run.

If you want to run commands in your current working directory, then you can run:

PATH=$PATH:.;export PATH

You can add this line to your ~/.bash_profile to have this behaviour persistent across sessions.

0

. is the symbol for your current directory. You have to include the / so it knows that it's not a . at the beginning of the file. If you navigate to a different directory and type the directory of the file, you don't have to have the ./

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.