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>