This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: bash /usr/bin/ls invalid argument

> From: Jared Ingersoll
> Sent: Monday, October 27, 2003 8:55 PM

> I'm using bash 2.05b-16 on Win2K pro and I'm running into problems listing
> directory contents with a wildcard. This particular directory has
> over 8000
> files in it, most of which (99%) are files that start with
> send.log.*. When
> I issue the following commands, I get the same error:
> $ ls send.log.*
> bash: /usr/bin/ls: Invalid argument

 For newbies: to get to grips about how this works "under the hood"; read up
on how "Shell expansion" works in e.g. bash (i.e. search and read the "man"
or "info" on bash)

 IIRC there was a recent thread (about environment variables and passing
arguments to a windows-console program):

There is a 32KB length limit on the command line. This is imposed on us by
the underlying "OS" - i.e. not likely to change.

To check how long your command line would be, try something like this:

$ find -type f -name 'send.log.*' |
  read f;
  echo "";
  while [ ! -z "$f" ];do
    cc=$(( 1 + $cc + $( echo "$f" | wc -c) ));
    echo -e "\e[F$cc\e[K";read f;
  echo -e "\e[F$cc chars"

Remember to add the length of e.g. "ls -l " (note space).

If this gives a number larger than...

$ echo $(( ( 1 << 15 ) -1 ))

... then you're "outta luck".

/Hannu E K Nevalainen, B.Sc. EE - 59?16.37'N, 17?12.60'E
-- printf("Timezone: %s\n", (DST)?"UTC+02":"UTC+01"); --

Unsubscribe info:
Problem reports:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]