Limits of length for the expansion of * in Bash?

2019-01-26 14:57发布

In Bash

echo *

is almost equivalent to ls.

You can do things like

echo */*-out/*.html > all-my-html-files-on-one-line

Since * is a command line argument then there should be a limit on the length.

What is that limit?

Is the limit different between echo the Bash command and /bin/echo the program?

2条回答
祖国的老花朵
2楼-- · 2019-01-26 15:13

I believe the command line limit is the value of ARG_MAX which you can see with

getconf ARG_MAX

This is not a bash variable, which would suggest that the limit is the same for echo in bash and /bin/echo.

查看更多
老娘就宠你
3楼-- · 2019-01-26 15:22

The shell does not limit this

You can see the limit for your system with (run on my 64bit linux:)

$ getconf ARG_MAX
2097152

See this very informational page http://www.in-ulm.de/~mascheck/various/argmax/

查看更多
登录 后发表回答