Difference between / and // directories in bash OSX
I was working in the bash terminal on my system (OSX 10.8.3 / bash version 3.2.48(1)-release (x86_64-apple-darwin12)) and I accidentally typed "cd //" instead of "cd /" to get back to the root directory.
Strange thing was that it took me to "//" which when I listed looked exactly like "/".
So my questions are:
Is there any semantic difference betweens these two paths?
What if anything is the purpose of these two paths?
and/or is it a bug?
In Unix and derivatives, multiple slashes following each other carry the same meaning as one slash. OS X is certified Unix, and thus follows that specification.
From the Single Unix Specification about the path name:
[A path] has an optional beginning slash, followed by zero or more filenames separated by slashes. A pathname may optionally contain one or more trailing slashes. Multiple successive slashes are considered to be the same as one slash.
The only special case is a path beginning with //
. Its interpretation is up to the implementation (see Pathname Resolution in the SUS):
A pathname that begins with two successive slashes may be interpreted in an implementation-defined manner, although more than two leading slashes shall be treated as a single slash.