[CentOS] Re: ls and rm: "argument list too long"
Robert Nichols
rnicholsNOSPAM at comcast.netSat Oct 18 12:43:53 UTC 2008
- Previous message: [CentOS] Re: ls and rm: "argument list too long"
- Next message: [CentOS] ls and rm: "argument list too long"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Les Mikesell wrote: > Robert Nichols wrote: >> >>> These shouldn't make any difference. The limit is on the size of the >>> expanded shell command line. >> >> Really? >> >> $ M=0; N=0; for W in `find /usr -xdev 2>/dev/null`; do M=$(($M+1)); >> N=$(($N+${#W}+1)); done; echo $M $N >> 156304 7677373 >> >> vs. >> >> $ /bin/echo `find /usr -xdev 2>/dev/null` >> bash: /bin/echo: Argument list too long >> >> For the first case, the shell never tries to pass the list as command >> arguments. >> It builds the list internally, limited only by memory size, and >> processes the >> words one by one. > > Is that peculiar to bash? I thought the `command` construct was > expanded by shells into the command line before being evaluated. I can't answer for how any particular shell allocates its internal memory, but yes, the shell does read the entire output from `command` before evaluating it. If this data is simply being used internally it never gets passed to the kernel as an argument to exec() and thus can never result in errno==E2BIG (7, "Argument list too long"). -- Bob Nichols "NOSPAM" is really part of my email address. Do NOT delete it.
- Previous message: [CentOS] Re: ls and rm: "argument list too long"
- Next message: [CentOS] ls and rm: "argument list too long"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the CentOS mailing list