Re: Argument list too long: out of environment space

From: ejc (eli.carter@inet.com)
Date: Wed Mar 01 2000 - 18:20:00 EST


Stuart Inglis wrote:
>
> Hi all,
>
> I have 9600 files in a directory and have troubles processing them. I
> thought it was a bash problem but Chet Ramey kindly informed me that
> it's a Linux kernel limitation.
>
> bash-2.03$ cd tttt/
> bash-2.03$ echo * | wc
> 1 9569 279676
> bash-2.03$ getconf ARG_MAX
> 131072
> bash-2.03$ grep hello *
> bash: /bin/grep: Argument list too long
> bash-2.03$ sort *
> bash: /bin/sort: Argument list too long
> bash-2.03$
>
> Why is this limit so small? There are only 9600 files taking a total of
> less than 300k to specify all of the names. The machine has 100's of Mb
> of RAM. Is it easy to change/fix?
>

[...and later...]

> Usually I get around problems like this by passing `echo *` into head or
> tail +N etc. xargs isn't an option due to the massive startup times of
> our custom commands.
>
> This is actually a small example... we often have more files than this
> :-)

You actually show the solution to your problem.
echo * | wc
worked, right? So pass your list of files to your apps the same way,
namely as a list to stdin. (And if that's not an option, you can always
add a -f <filename> flag to your custom commands where the file holds
the list of files you're working with.) Since we're dealing with
"custom commands" you should be able to customize them accordingly.

^C-ya

Eli

-- 
Eli Carter
eli.carter@inet.com

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Mar 07 2000 - 21:00:11 EST