Skip site navigation (1)Skip section navigation (2)
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+9ogewck4LU9wPtE4hWtT03ZoRBhYz3p-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: <http://docs.FreeBSD.org/cgi/mid.cgi?CAB+9ogewck4LU9wPtE4hWtT03ZoRBhYz3p-43WHkMcLoiX3Ahg>