Subject: Re: Pathnames with trailing /
To: NetBSD Kernel Technical Discussion List <tech-kern@NetBSD.org>
From: Lord Isildur <mrfusion@uranium.vaxpower.org>
List: tech-kern
Date: 09/09/2003 08:51:08
> Reversion to tradition == de-evolution. Time goes forward (except, it
<snip>
> UNIX systems" ( i.e. something that makes actual progress! Remember,
> tradition is non-progressive...) makes you look at it as stupid or
This is most definitely not an axiomatic truth. To the contrary, the
unwavering equation of chronological progress with improvement and
advancement is a huge farce. It is an ideological artefact found in many
parts of our society, i'll admit.. but it is nonetheless pretty dumb.
Things must be considered on their own to see if they have merit, not
just looking at the passage of time and deciding a newer version is
without hesitation 'better'.
Now, having said that, personally i consider trailing slashes to be
fine and dandy when the shell generates them in filename completion, but
something to be kept totally out of the kernel. Should we accept an '@'
at the end of a name if the file happens to be a symlink, just because
many versions of ls and some shells use this convention in indicating
things to users? Accepting a trailing /, or even further, converting a
trailing / to /. , is something which _only_ works with one kind of file,
namely, a directory. Ortherwise, the semantics are totally broken. To
have any kind of special treatment of file types involved with the
_names_ of files is a very ridiculous concept to me. There are some
schools of thought which like to semantically bind a file's 'type' to
its name.. unix is not one of them. The kernel, which performs the
translation, ultimately, of a name into a usable file descriptor, should
make no special translations dependingon what type of file is being
referenced. a trailing / should simply be removed: this is a convention
which works 100% of the time with _all_ files. A / is an illegal
character in a filename, and a trailing one should simply be ignored, not
as the default directory translation of /. , but as the null directory
translation, i.e. the truncation of the trailing / and no directory
translation taking place. Someone please show me how this is somehow less
sane than making special cases for the names of directories? We only have
to deal with this so often because so many shells are in the business of
adding the / to names of directories..
my .02,
Isildur