title: bundle exec thin start vs ./bundle/bin/thin start
body: <p>I'm trying to understand how <code>bundle exec</code> works and what it does. I've installed the gems using <code>bundle install</code> like so:</p>
  
  <pre><code>bundle install --binstubs ./bundle/bin --path ./bundle/lib'
  </code></pre>
  
  <p>This creates a script <code>./bundle/bin/thin</code> that I can use to start my Rails application using <code>thin</code> like so:</p>
  
  <pre><code>./bundle/bin/thin start -p 8080
  </code></pre>
  
  <p>However I see most articles on the internet recommend starting thin using <code>bundle exec</code> like this:</p>
  
  <pre><code>bundle exec thin start -p 8080
  </code></pre>
  
  <p>What is the difference between the two? My tests show that <code>bundle exec</code> doesn't call the <code>./bundle/bin/thin</code> script, so how does <code>bundle exec</code> differ from the script?</p>