'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