There is only a single "bash" executable. The directory /bin
is now replaced by a symbolic link to /usr/bin
. Therefore, both /bin/bash
and /usr/bin/bash
are the same executable.
Historically, bash
as a core utility used to be in /bin
. Hard drives were small, so there was a need to keep the system partition small. Core binaries were collected in /bin
, which resided on the hard drive from which the system booted. A directory /usr/bin
was then designed to host other binaries, that eventually were present on a partition on another drive, mounted later in the boot process.
Storage is nowadays plenty, so there is a tendency to do away with the historical split between /bin
and /usr/bin
. Many distributions started to move any executable to /usr/bin
instead, but, for compatibility reasons, still have a /bin
, which really is only a symbolic link to /usr/bin
. This way, the traditional shebang #!/bin/bash
continues to work, although /bin
my disappear completely in the future.