'rm' Can not delete files
andrew clarke
mail at ozzmosis.com
Sat Feb 11 01:33:13 UTC 2012
On Fri 2012-02-10 16:12:06 UTC+0000, Matthew Seaman (m.seaman at infracaninophile.co.uk) wrote:
> > In addition, I don't believe it solves the OP's initial problem of the
> > argument list being too long! You'd probably need to use the xargs -n
> > switch here.
>
> Go and read the xargs(1) man page carefully. xargs is specifically
> designed to avoid arglist overflows.
Ah, I grepped for 'limit' and 'overflow', didn't see anything
applicable, and didn't notice the -s switch. That it avoids arglist
overflows should perhaps be written more obviously in the man page
(though I'm not sure how...)
> >> Or the scenic route, using xargs, with one rm per file (slower):
> >>
> >> find . -type f -depth 1 -print0 | xargs -n1 -0 rm -f
> >>
> >> (The "scenic route" is useful if you want to do something else with
> >> the files instead of deleting them with rm.)
>
> In this case, if you're going to call rm repeatedly with only one arg,
> then xargs is pretty pointless. You might as well do:
>
> find . -type f -depth 1 -exec rm -f '{}' ';'
>
> but let's not leave people in any doubt that this is not the best option.
True, but I can never remember the syntax for -exec. :-)
Regards
Andrew
More information about the freebsd-questions
mailing list