GNU bug report logs -
#15926
RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call
Previous Next
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
Eric Blake wrote:
> But that's not what Linda is asking for. She is not asking to pull "."
> out of under her feet.
Actually as I understand it she is expecting the call to succeed if
the system kernel allows it. I believe that is the way rm used to
work before removing '.' was disallowed.
mkdir /tmp/testdir
cd /tmp/testdir
rmdir /tmp/testdir
echo $?
0
ls -ldog /tmp/testdir
ls: cannot access /tmp/testdir: No such file or directory
/bin/pwd
/bin/pwd: couldn't find directory entry in ‘..’ with matching i-node
That is fine in a flow such as a test flow or other where the action
is cleaning up on an exit for example. Or in other cases. It might
be making a new directory and changing to it afterward. Or something
else that makes sense in that case.
> Instead, she wants a command that will recursively remove the
> children of ".", but then leave "." itself unremoved (whether by
> virtue of the fact that rmdir(".") must fail
I am missing this part. Why must it fail? And in fact as per my test
case above it succeeds.
> Right now, the nanny rule of POSIX is preventing the recursion, so
> you have to use contortions such as the POSIX 'find . -depth ! -name
> . -exec rm {} +'. So I think it IS useful to add an option that
> forces 'rm -r' to bypass the nanny rule and recurse on ".".
Agreed.
> Maybe naming it --no-preserve-dot is wrong. Maybe a better name is 'rm
> -r --children-only .'. At which point, I would much rather see us skip
> the rmdir(".") in order to allow rm to succeed. And it would also work
> even for non-dot situations: 'rm -r --children-only dir'. In other
> words, I _do_ see what Linda is asking for, and think it is worth providing.
Agreed. And I rather like the --children-only semantics you have
proposed. It creates a generally useful behavior regardless of other
things. It isn't quite the same as bypassing the nanny rule for '.'
but it solves the issue while doing something generally useful at the
same time. Have to like it when it is two birds with one stone. :-)
Bob
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.