httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Montague <m...@catseye.org>
Subject Re: [users@httpd] Apache & Unix
Date Mon, 29 Dec 2014 19:40:51 GMT
On 2014-12-29 14:01, Gil Dawson wrote:
> I'm having a little problem understanding the Unix terminology.

You may find Chapter 2 of the freely available book "The Linux Command 
Line" ( http://linuxcommand.org/tlcl.php ) to be helpful. Although this 
book is about Linux, not MacOS X, both are based on Unix.

> This paragraph has me stumped.
>
>     '...if the filenames ... begin with "/"'
>
>         --I cannot imagine how a filename could begin with "/".
>
>         Does the author possibly mean /pathname/?
>
>         A pathname might begin with either a "/" or a "~", would it not?
>

Configuration and log files are files, whereas pathnames can point to 
anything.  So although it may be confusing, I think that "filename" is 
the correct terminology here.  The filename may be just the name of a 
file without any directory component, or it may include a relative 
directory component or an absolute directory component.  Examples:

Simple filename:   extra-stuff.conf (look for the file 
"extra-stuff.conf" inside the current directory)

With relative directory:  my-stuff/extra-stuff.conf  (look for the file 
"extra-stuff.conf" inside the directory "my-stuff" which in turn is in 
the current directory").  Note that this is the same as 
./my-stuff/extra-stuff.conf

Another example with a relative directory: 
../../another-place/extra-stuff.conf (go up two directory levels from 
the current directory, then into the directory "another-place" and then 
the file is extra-stuff.conf).

Absolute directory component:  /private/etc/apache2/extra-stuff.conf

>
>     "If the filenames do *not* begin with "/", ...
>     "/private/var/log/apache2/foo_log"
>
>         --This is an example of a filename that does not begin with
>         "/", right?
>         I don't get it.  I see "/" at the beginning of everything.
>         What would be an example of a filename that /does/ begin with "/"?
>

/private/var/log/apache2/foo_log" *does* begin with "/".  You're trying 
to make too much of a distinction between pathnames and filenames.

>     "/usr//private/..."
>
>         -- What is the meaning of "//" in this context?
>

It has no meaning, extra slashes between directory components are 
ignored.  This lets scripts and other programs construct filenames 
without having to detect and remove extraneous slashes; if a script 
always adds a slash, it will be there when needed and won't cause 
problems if it is not needed.  The following are all equivalent:

/usr/private
/usr//private
/usr/private/
/////usr/////private/////

For more reading, see 
http://teaching.idallen.com/cst8207/12f/notes/160_pathnames.html

-- 
   Mark Montague
   mark@catseye.org


Mime
View raw message