URL: <http://savannah.gnu.org/bugs/?20865>
Summary: -delete interacts with -prune Project: findutils Submitted by: None Submitted on: Wednesday 08/22/2007 at 08:50 UTC Category: find Severity: 3 - Normal Item Group: None Status: None Privacy: Public Assigned to: None Originator Name: Bruno De Fraine Originator Email: [EMAIL PROTECTED] Open/Closed: Open Discussion Lock: Any Release: 4.2.28 Fixed Release: None _______________________________________________________ Details: There is a potentially dangerous interaction between -delete and -prune: -delete turns on -depth, which (in turn) silently disables the effects of -prune. This caused seemingly inexplicable data loss for me on a number of occassions before I understood the problem. This interaction is specifically malicious because it only occurs when you proceed to deleting. For example, you can use -prune to list only the 'real' files in a Subversion working copy: $ find -not "(" -name .svn -type d -prune ")" -type f ./a.txt If you rerun the command-line with -delete added to the end, intending to proceed with the deletion of those files, you actually silently delete more, as only a listing with -depth reveals: $ find -depth -not "(" -name .svn -type d -prune ")" -type f ./.svn/text-base/a.txt.svn-base ./.svn/entries ./.svn/all-wcprops ./.svn/format ./a.txt Given that this is documented behavior of two (perhaps ill-considered) features, is there room for any of the following changes to mitigate this problem? * -delete does not turn on -depth implicitly * issue a warning/error when using -prune in case of -depth * issue an ad hoc warning/error when detecting the combination of -prune and -delete _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?20865> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/