>> Whereas "find /tmp -mindepth 1 -maxdepth 1 ! -type d -print0 \ >> | xargs -r0 rm -f" will succeed. More >> complicated, to be sure, but more robust.
>Jim - I'm quite interested in this issue - a customer has just forced us >to up the spec on our data logger so it may have to delete 1000+ files at >once from a log area. I guess that will have the possibility to run into >this issue. Absolutely the sort of area where find/xargs will not run into trouble, yet other methods might have trouble. find -exec will work, but will be slower than find in conjunction with xargs. >I've just done a pile of googling and now vaguely understand that line! >is the -r0 a typo? Nope! -r tells xargs not to run the target command if there are no additional arguments fed from the pipe. Avoids things like "rm -f" being executed at the end. One could argue that this should have been xargs' default behavior from the very beginning, but for whatever reason it is not. The -0 works in conjunction with -print0 to handle filenames with spaces in them. There are only two characters that literally cannot be part of a filename: a slash (which is a path separator), and a NULL. By using the NULL as a delimiter, literally _any_ weird-ass character found in a filename will still be properly processed. I just happen to use -r0 canonically, always have. Getopt likes it just fine. -- Jim _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
