Date: Mon, 23 Jan 2006 11:40:06 GMT From: Eugene Grosbein <eugen@grosbein.pp.ru> To: freebsd-bugs@FreeBSD.org Subject: Re: bin/92149: [patch] ln -f -s does not remove existing directory Message-ID: <200601231140.k0NBe63G093344@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/92149; it has been noted by GNATS. From: Eugene Grosbein <eugen@grosbein.pp.ru> To: Gleb Smirnoff <glebius@FreeBSD.org> Cc: FreeBSD-gnats-submit@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200601231140.k0NBe63G093344>
