On 11/19/2013 11:45 PM, Bernhard Voelker wrote:
> On 11/20/2013 03:19 AM, Eric Blake wrote:
>> 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(".").
>
> I disagree: see at the top of:
>
> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/rm.html
>
> If either of the files dot or dot-dot are specified as the basename
> portion of an operand (that is, the final pathname component) or if
> an operand resolves to the root directory, rm shall write a diagnostic
> message to standard error and do nothing more with such operands.Ah, that's where it is. I was looking in the numbered steps, not the paragraph before the numbered steps. So it appears that coreutils is compliant after all. > > Maybe "cannot remove directory" is a bit weak - it's more like > "refusing to remove dot|dot-dot|root directory". Indeed, a clearer error message would be possible. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
