GNU bug report logs - #15926
RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call

Previous Next

Package: coreutils;

Reported by: Linda Walsh <coreutils <at> tlinx.org>

Date: Tue, 19 Nov 2013 11:58:02 UTC

Severity: normal

Tags: notabug, patch

Merged with 15943

Done: Assaf Gordon <assafgordon <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eric Blake <eblake <at> redhat.com>
To: Bob Proulx <bob <at> proulx.com>, 15926 <at> debbugs.gnu.org
Subject: bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call
Date: Tue, 19 Nov 2013 19:19:27 -0700
[Message part 1 (text/plain, inline)]
On 11/19/2013 01:45 PM, Bob Proulx wrote:

>> Posix changed that requiring special checks for ".".  Scripts relied
>> on that behavior for 30-40 years as well...  If you want to use that
>> reasoning, rm should go back to doing depth first deletion and
>> reporting an error with deleting "." when it is finished.
> 

I see nothing in
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/rm.html that
requires up-front special handling of trailing '.', only a callout to
what rmdir() is required to do.  Ultimately, rmdir("dir/.") is required
to fail, but nothing in POSIX appears to allow us to short-circuit the
recursive cleanup before attempting the failing command.

> I actually agree with you on that point. ;-)
> (Regarding 'rm -rf .')

Yes, the 'rm -rf .' case appears to be a regression in coreutils that is
contrary to the behavior required by POSIX.  That is:

$ mkdir /tmp/foo /tmp/foo/sub
$ cd /tmp/foo
$ rm -r .
rm: cannot remove directory: ‘.’
$ ls
sub

appears to be a bug in current coreutils, because it should have
successfully called rmdir("sub") prior to failing on the attempt to
rmdir(".").

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

[signature.asc (application/pgp-signature, attachment)]

This bug report was last modified 6 years and 225 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.