Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 1 Apr 2012 18:20:15 GMT
From:      Matthew Story <matthewstory@gmail.com>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: bin/166554: find -delete is silent when failing to rmdir nonempty directories
Message-ID:  <201204011820.q31IKFQV074948@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/166554; it has been noted by GNATS.

From: Matthew Story <matthewstory@gmail.com>
To: Richard Kettlewell <rjk@greenend.org.uk>
Cc: freebsd-gnats-submit@freebsd.org
Subject: Re: bin/166554: find -delete is silent when failing to rmdir nonempty directories
Date: Sun, 1 Apr 2012 14:10:04 -0400

 --bcaec51d21a4a5912104bca1fbed
 Content-Type: text/plain; charset=ISO-8859-1
 
 On Sun, Apr 1, 2012 at 5:29 AM, Richard Kettlewell <rjk@greenend.org.uk> wrote:
 > find -delete is documented as removing files and/or directories. However since it uses rmdir() it cannot remove nonempty directories. This is fine, but it suppresses the error message in this case. This leads to considerable user confusion.
 >
 > I suggest that:
 >
 > 1. The limitation that it can only remove nonempty directories be documented.
 > 2. The error message not be suppressed (i.e. that the ENOTEMPTY test be removed).
 >
 > GNU find -delete does produce an error message in this case.
 
 I agree with this assessment, patch attached for consideration.
 Following the patch:
 
 $ # old behavior
 $ mkdir -p foo/bar/baz
 $ find ./foo -depth 1 -delete
 $ find ./foo -depth 1
 ./foo/bar
 $ # new behavior
 $ mkdir -p foo/bar/baz
 $ find ./foo -depth 1 -delete
 find: -delete: rmdir(./foo/bar): Directory not empty
 $ find ./foo -depth 1
 ./foo/bar
 
 >
 > -delete seems to be an extension compare to SUS find, so I don't believe there are any standards-compliance questions here.
 
 POSIX 2008 does not define any -delete primary, so there are no
 standards-compliance questions.
 
 Patch is also available via HTTP here:
 
 http://axe0.blackskyresearch.net/patches/matt/freebsd.PR166554.patch.txt
 
 -- 
 regards,
 matt
 
 --bcaec51d21a4a5912104bca1fbed
 Content-Type: text/plain; charset=US-ASCII; name="freebsd.PR166554.patch.txt"
 Content-Disposition: attachment; filename="freebsd.PR166554.patch.txt"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_h0iem7k00
 
 SW5kZXg6IGZpbmQuMQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBmaW5kLjEJKHJldmlzaW9uIDIzMzc1OSkKKysr
 IGZpbmQuMQkod29ya2luZyBjb3B5KQpAQCAtMzE5LDYgKzMxOSwxMSBAQAogLkRxIFBhIFwmLgog
 Zm9yIHNlY3VyaXR5IHJlYXNvbnMuCiBEZXB0aC1maXJzdCB0cmF2ZXJzYWwgcHJvY2Vzc2luZyBp
 cyBpbXBsaWVkIGJ5IHRoaXMgb3B0aW9uLgorVGhlIAorLkljIC1kZWxldGUKK3ByaW1hcnkgd2ls
 bCBmYWlsIHRvIAorLlhyIHJtZGlyIDIKK2EgZGlyZWN0b3J5IGlmIGl0IGlzIG5vdCBlbXB0eSBm
 b3IgYW55IHJlYXNvbi4KIEZvbGxvd2luZyBzeW1saW5rcyBpcyBpbmNvbXBhdGlibGUgd2l0aCB0
 aGlzIG9wdGlvbi4KIC5JdCBJYyAtZGVwdGgKIEFsd2F5cyB0cnVlOwpJbmRleDogZnVuY3Rpb24u
 Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PT09Ci0tLSBmdW5jdGlvbi5jCShyZXZpc2lvbiAyMzM3NTkpCisrKyBmdW5jdGlv
 bi5jCSh3b3JraW5nIGNvcHkpCkBAIC00NTMsNyArNDUzLDcgQEAKIAogCS8qIHJtZGlyIGRpcmVj
 dG9yaWVzLCB1bmxpbmsgZXZlcnl0aGluZyBlbHNlICovCiAJaWYgKFNfSVNESVIoZW50cnktPmZ0
 c19zdGF0cC0+c3RfbW9kZSkpIHsKLQkJaWYgKHJtZGlyKGVudHJ5LT5mdHNfYWNjcGF0aCkgPCAw
 ICYmIGVycm5vICE9IEVOT1RFTVBUWSkKKwkJaWYgKHJtZGlyKGVudHJ5LT5mdHNfYWNjcGF0aCkg
 PCAwKQogCQkJd2FybigiLWRlbGV0ZTogcm1kaXIoJXMpIiwgZW50cnktPmZ0c19wYXRoKTsKIAl9
 IGVsc2UgewogCQlpZiAodW5saW5rKGVudHJ5LT5mdHNfYWNjcGF0aCkgPCAwKQo=
 --bcaec51d21a4a5912104bca1fbed--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201204011820.q31IKFQV074948>