title: Why do you need ./ (dot-slash) before executable or script name to run it in bash?
body: <p>When running scripts in bash, I have to write <code>./</code> in the beginning:</p>
  
  <pre><code>$ ./manage.py syncdb
  </code></pre>
  
  <p>If I don't, I get an error message:</p>
  
  <pre><code>$ manage.py syncdb
  -bash: manage.py: command not found
  </code></pre>
  
  <p>What is the reason for this? I thought <code>.</code> is an alias for current folder, and therefore these two calls should be equivalent.</p>
  
  <p>I also don't understand why I don't need <code>./</code> when running applications, such as:</p>
  
  <pre><code>user:/home/user$ cd /usr/bin
  user:/usr/bin$ git
  </code></pre>
  
  <p>(which runs without <code>./</code>)</p>