Bruno Haible <[EMAIL PROTECTED]> wrote:
> ln (GNU coreutils 5.1.1) on Linux 2.4.x, when given the command
>
>      ln -sf foo symlink_to_directory
>
> puts the symlink to 'foo' into the directory. I would have expected it to
> replace the symlink_to_directory. Rationale:

The behavior of `ln -s' in that case is compatible with
historical BSD implementations.  You'd like the SYSV behavior.
I think it's too late to change, since many people have come to
rely on the existing behavior.  Imagine what'd happen if we did
change it:  people are used to creating a link in a directory,
say in /usr/local/bin, by doing this

  ln -fs /some/file /usr/local/bin

and that works fine as long as /usr/local/bin is a directory.
But what happens when e.g., due to space considerations, that
`bin' directory is moved and replaced with a symlink to its new
location.  Then, the very same command will have the surprising
effect of making /usr/local/bin point to /some/file rather than
to the directory containing lots of executables.

> Is that consistent with POSIX?

I don't know.  Perhaps it is deliberately not specified.  If the
POSIX spec mandates this aspect of `ln -s' semantics, then lots
of vendors are non-conforming, on one side or the other.


_______________________________________________
Bug-coreutils mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-coreutils

Reply via email to