Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What is it? ...

share|improve this question

Wikipedia has a decent explanation. From that article:

  • /bin: "Essential command binaries that need to be available in single user mode; for all users, e.g., cat, ls, cp."
  • /usr/bin: "Non-essential command binaries (not needed in single user mode); for all users."
share|improve this answer
For more info take a look into – Marcin Gil Nov 30 '09 at 7:26
In addition to their essential status, /bin should be statically linked (not try to dynamically load dependencies) which means they may be much larger files. However, they will still work even if necessary system libraries are mucked up. /usr/bin has no such recommendation. – Broam Nov 30 '09 at 14:35
Most of the time, the stuff in /bin is not statically linked these days. You use busybox if you need a statically liked environment. – Ken Bloom Dec 2 '09 at 20:59
$ man hier

contains a good description of the file system hierarchy

share|improve this answer

In the old days of small disks, it was common to have /bin on the boot disk, and /usr/bin on a separate disk (sometimes even a shared network drive). /bin would contain anything needed to either boot the system, or fix it if /usr/bin couldn't be mounted for some reason. Its another one of those historical accidents that doesn't make as much sense today.

share|improve this answer

The distinction is simple:

/bin is where system binaries are stored (mostly these binaries are owned by root) whereas /usr/bin is the usual spot for binaries that are used by ordinary non-root users. It is also a common place to deposit binary programs that were built by the compiler to be used by other users.

share|improve this answer

A lot of times (even today, for various reasons), people create /usr as a separate filesystem. In these circumstances, / is mounted first, then programs on / are used to mount /bin. So there's a requirement that anything needed to get to the point of mounting /usr needs to live in /bin or /sbin. Additionally, anything useful in troubleshooting problems (if you can't mount /usr) is also best stored in /bin or /sbin.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .