Re: Could ARG_MAX be increased?

From: Giorgos Keramidas <keramida_at_linux.gr>
Date: Fri, 24 Sep 2004 03:03:13 +0300
On 2004-09-24 07:33, Juha Saarinen <juhasaarinen_at_gmail.com> wrote:
>
> You can use the -exec feature of 'find' other wise -
>
> find . -type f -exec grep "something" {} /dev/null \;
>
> -- the /dev/null is, according to a friend, "to provide grep with more
> than one input file, so that includes the file name in any matches.

The friend is correct.  This is a nice trick.

xargs will construct a command line by appending one or more filenames
to what you pass.  The important part being ``one or more''.

If xargs appends one filename to an argument list of `grep foo', the
executed command is `grep foo filename', which will not list the name of
the file with every match since grep sees only 1 filename argument.

If the argument list passed to xargs is `grep foo /dev/null' though, the
executed command is `grep foo /dev/null filename'; in this case the
filenames grep sees are always at least 2, which enables printing the
filename with every match.

This is better illustrated with an example:

$ grep PS1 .bashrc
export PS1='${USER}_at_\h[\A]${PWD}\$ '
$ grep PS1 /dev/null .bashrc
.bashrc:export PS1='${USER}_at_\h[\A]${PWD}\$ '

Regards,
Giorgos
Received on Thu Sep 23 2004 - 22:03:18 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:13 UTC