Date: Fri, 10 Feb 2012 11:04:22 -0500 From: Matthew Story <matthewstory@gmail.com> To: freebsd-questions@freebsd.org Subject: Re: 'rm' Can not delete files Message-ID: <CAB%2B9ogewck4LU9wPtE4hWtT03ZoRBhYz3p-43WHkMcLoiX3Ahg@mail.gmail.com> In-Reply-To: <4F353D1F.3020100@herveybayaustralia.com.au> References: <1237723287.20120207235924@yandex.ru> <4F31A260.20109@infracaninophile.co.uk> <20120207231716.31aa8bc3@gumby.homeunix.com> <20120209032544.GA58560@ozzmosis.com> <CAE7N2kdmbm_5=c8oNknYQE5HOrvVjtfS4XTGYvxTjEQVbGr-7Q@mail.gmail.com> <4F353D1F.3020100@herveybayaustralia.com.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Feb 10, 2012 at 10:51 AM, Da Rock < freebsd-questions@herveybayaustralia.com.au> wrote: > On 02/11/12 01:34, Henry Olyer wrote: > >> So what do I change if I want to increase the shell's file limit? >> > I don't think you can. It's not a shell limit. It's a limit to the number > of arguments the command itself will take. As said, the shell expands '*' > to a list of files as the argument, and rm is limited to the number of > arguments it will parse. > > I use bash 4. >> >> And by the way, for me, part of the normal installation of a new FBSD box >> is to make certain changes. For example, for "uniq -c" I use "%06" >> instead >> of "%d" because this way I can sort the output. Things like that. >> >> I never learned a shell language. I suppose no one is as dumb as someone >> who choose's not to learn, so, what's the right one. csh?, because I do a >> lot of scientific work?, or should I be looking at another? >> > There's not really much difference in this factor for shell types; as for > changes you'd have to hack the command's (say rm) code. > > As mentioned, I'd use the find -delete combination. I think the only thing that would give you this sort of pseudo-granularity of MAX_ARGS (and ARG_MAX) control at run-time is xargs with the -s and -n options ... a play on andrew's earlier example: find . -type f -depth 1 -print0 | xargs -n99 -0 -s8192 -c5 rm -- or some such, depending on your needs, I believe in most situations this particular invocation will also out-perform find ... -delete. > On Wed, Feb 8, 2012 at 10:25 PM, andrew clarke<mail@ozzmosis.com> wrote: >> >> On Tue 2012-02-07 23:17:16 UTC+0000, RW (rwmaillists@googlemail.com) >>> wrote: >>> >>> On Tue, 07 Feb 2012 22:14:56 +0000 >>>> Matthew Seaman wrote: >>>> >>>> ls -1 | xargs rm >>>>> >>>> but be aware that that wont work for filenames with spaces. >>>> >>> 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. >>> >>> The above will also try to 'rm' directories, which won't work. >>> >>> Instead I would use 'find': >>> >>> find . -type f -depth 1 -delete >>> >>> This will also work with filenames with spaces. >>> >>> 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.) >>> >>> Regards >>> Andrew >>> ______________________________**_________________ >>> freebsd-questions@freebsd.org mailing list >>> http://lists.freebsd.org/**mailman/listinfo/freebsd-**questions<http://lists.freebsd.org/mailman/listinfo/freebsd-questions> >>> To unsubscribe, send any mail to " >>> freebsd-questions-unsubscribe@**freebsd.org<freebsd-questions-unsubscribe@freebsd.org> >>> " >>> >>> ______________________________**_________________ >> freebsd-questions@freebsd.org mailing list >> http://lists.freebsd.org/**mailman/listinfo/freebsd-**questions<http://lists.freebsd.org/mailman/listinfo/freebsd-questions> >> To unsubscribe, send any mail to "freebsd-questions-** >> unsubscribe@freebsd.org <freebsd-questions-unsubscribe@freebsd.org>" >> > > ______________________________**_________________ > freebsd-questions@freebsd.org mailing list > http://lists.freebsd.org/**mailman/listinfo/freebsd-**questions<http://lists.freebsd.org/mailman/listinfo/freebsd-questions> > To unsubscribe, send any mail to "freebsd-questions-** > unsubscribe@freebsd.org <freebsd-questions-unsubscribe@freebsd.org>" > -- regards, matt
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAB%2B9ogewck4LU9wPtE4hWtT03ZoRBhYz3p-43WHkMcLoiX3Ahg>