-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Thomas Schwinge on 11/24/2007 4:36 PM:
>> { echo *.hhm | xargs cat; } > scop70_1.72.hhm.tmp
> 
> I was looking at these two command lines and wondered why you think that
> ``cat *.hhm'' would produce a longer command line than ``echo *.hhm''
> does.
> 
> But I think I just found the answer why this might indeed work: `echo'
> usually (?) is a shell built-in function and thus doesn't have this
> limitation (?).  Correct?

Yes indeed.  Because echo is a builtin, the shell does not need to
fork/exec, therefore, the kernel exec argument length limit need not apply.

> (Save the discussion about the portability of using the null chararcter
> separator, of course.)

Actually, this whole discussion should think about that issue - my example
is probably no less reliable than the original failed attempt, but also no
more secure in dealing with shell metacharacters.  You are correct that a
robust solution must think about these issues.

> 
>     find ./ -name \*.hhm -print0 | sort -z | xargs -0 cat > ...

Except that it recurses into subdirectories, while the command-line glob
does not.  You would also need to use -prune or the non-portable -maxdepth
1 with find to limit results to the current directory.

Another issue in my (untested) solution - I really should have had three
commands, not two, with the first being 'rm -f scop70_1.72.hhm', so that
any pre-existing contents in that file are not duplicated.  In that light,
my post should be read along the lines of 'you asked a FAQ, and here's
some guidelines to resolve it' rather than 'here's the solution to your
problem'.

- --
Don't work too hard, make some time for fun as well!

Eric Blake             [EMAIL PROTECTED]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHSLqt84KuGfSFAYARAiKrAJ4rKU2PG3eIw/490iMvJVNe8k0TIwCgliWy
dnl6NVyOgLQM5K1jp9JlEa4=
=+8bF
-----END PGP SIGNATURE-----


_______________________________________________
Bug-coreutils mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-coreutils

Reply via email to