Re: Apache & Unix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Excellent response, Mark!  

Exactly what I needed.

Thank you.

--Gil

On Dec 29, 2014, at 11:40 AM, Mark Montague wrote:

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@xxxxxxxxxxx


[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux