bin/92149: [patch] ln -f -s does not remove existing directory
Eugene Grosbein
eugen at grosbein.pp.ru
Mon Jan 23 03:40:07 PST 2006
The following reply was made to PR bin/92149; it has been noted by GNATS.
From: Eugene Grosbein <eugen at grosbein.pp.ru>
To: Gleb Smirnoff <glebius at FreeBSD.org>
Cc: FreeBSD-gnats-submit at FreeBSD.org
Subject: Re: bin/92149: [patch] ln -f -s does not remove existing directory
Date: Mon, 23 Jan 2006 18:32:45 +0700
On Mon, Jan 23, 2006 at 11:53:36AM +0300, Gleb Smirnoff wrote:
> E> "ln -f -s" may be used to create a symlink to the file and
> E> the target file will be unlinked if it exists.
> E>
> E> However, ln will fail with 'Operation not permitted' message
> E> when target is a directory because unlink(2) does not remove
> E> empty directories.
>
> I think that the current behavior is standard, while suggested behavior
> is going to violate SUSv3. At least I understand the standard this way:
>
> If the destination path exists:
>
> 1. If the -f option is not specified, ln shall write a diagnostic message
> to standard error, do nothing more with the current source_file, and go
> on to any remaining source_files.
> 2. Actions shall be performed equivalent to the unlink() function defined in
> the System Interfaces volume of IEEE Std 1003.1-2001, called using
> destination as the path argument. If this fails for any reason, ln shall
> write a diagnostic message to standard error, do nothing more with the
> current source_file, and go on to any remaining source_files.
>
> http://www.opengroup.org/onlinepubs/000095399/utilities/ln.html
Then I'd like to introduce new command line option enabling desired
behavour. Should I correct the patch?
Eugene Grosbein
More information about the freebsd-bugs
mailing list