[wellylug] ls capacity

Grant McLean grantm at web.co.nz
Fri Nov 29 16:43:01 NZDT 2002


Grant McLean wrote:
> managed to break a Linux shell in the same way.  I couldn't
> find any reference to a maximum command length limitation
> of the 'bash' shell so I kicked of a little test a few
> minutes ago.  It's up to 35000 characters and still going.

Update ...

129691
129701
129711
129721
bash: /usr/local/bin/perl: Argument list too long

For the record, this was the test:

$ Data='x'
$ Count=1
$ while :
> do 
> perl -le '$count = shift
> length("@ARGV") == $count || exit(1);' $Count $Data || break
> Count=`expr $Count + 10`
> Data="$Data xxxxxxxxx"
> echo $Count
> done

===============================================================
Grant McLean        BearingPoint Inc - formerly The Web Limited
+64 4 495 9026           Level 6, 20 Customhouse Quay, Box 1195
gmclean at bearingpoint.biz                Wellington, New Zealand




> -----Original Message-----
> From: Grant McLean 
> Sent: Friday, November 29, 2002 3:43 PM
> To: wellylug at yahoogroups.com
> Subject: RE: [wellylug] ls capacity
> 
> 
> Edouard CHALARON wrote:
> > What is the maximum amount of files you can list in a 
> > directory ?
> > like : ls *.jpg
> 
> That touches on a number of different areas.
> 
> As far as I'm aware, there is no limit on the number of
> files you can have in a directory (beyond the physical 
> capacity of the filesystem and perhaps a 2GB limit on the
> size of the '.' special file).  However the more files that
> a directory contains, the slower it will be to open any
> given one of them.
> 
> If you have thousands of files in a directory and you run 
> the 'ls' command then you should (eventually) get a list
> of all the files.
> 
> However, if you run 'ls *.jpg' your command shell does not
> pass the pattern to ls (as the DOS command shell does).
> Instead, the shell expands the pattern into a list of 
> filenames and passes 'ls' all the names.
> 
> It is possible that if you had a lot of files in a 
> directory, that you might exceed the maximum allowable
> command line length.  Although I've managed to exceed
> the DOS (or Windows) command length limitations, I haven't
> managed to break a Linux shell in the same way.  I couldn't
> find any reference to a maximum command length limitation
> of the 'bash' shell so I kicked of a little test a few
> minutes ago.  It's up to 35000 characters and still going.
> 
> Another feature of the shell pattern expansion (called
> 'globbing') is that it sorts the matching filenames into 
> alphabetical order before passing them to the called
> program.  So I guess with lots of files you could run up
> against memory limitations.
> 
> Here's an alternative to your ls command that should work 
> for any number of files:
> 
>   ls -f | grep '\.jpg$'
> 
> The '-f' tells 'ls' not to try and sort the files either.
> 
> If you do need to have lots of individual files, it's 
> probably a good idea to split them among subdirectories.
> A common technique is to use the first one or two 
> characters of the filename eg:
> 
>   elephant.jpg    would become e/el/elephant.jpg
>   cheese.jpg      would become c/ch/cheese.jpg
> 
> etc.
> 
> Are you having a specific problem with a large number
> of files?  
> 
> Regards
> Grant
> 
> ===============================================================
> Grant McLean        BearingPoint Inc - formerly The Web Limited
> +64 4 495 9026           Level 6, 20 Customhouse Quay, Box 1195
> gmclean at bearingpoint.biz                Wellington, New Zealand
> 
> 
> 
> 
> 
> ------------------------ Yahoo! Groups Sponsor 
> ---------------------~-->
> Get 128 Bit SSL Encryption!
> http://us.click.yahoo.com/CBxunD/vN2EAA/xGHJAA/0XFolB/TM
> --------------------------------------------------------------
> -------~->
> 
>   .-.   Wellington
>   /V\   Linux
>  // \\  Users       
> /(   )\ Group
>  ^^-^^
>         http://wlug.paradise.net.nz/
> 
> To unsubscribe from this group, send an email to:
> wellylug-unsubscribe at egroups.com
>   
> 
> Your use of Yahoo! Groups is subject to 
> http://docs.yahoo.com/info/terms/ 
> 
> 
> 

------------------------ Yahoo! Groups Sponsor ---------------------~-->
Get 128 Bit SSL Encryption!
http://us.click.yahoo.com/CBxunD/vN2EAA/xGHJAA/0XFolB/TM
---------------------------------------------------------------------~->

  .-.   Wellington
  /V\   Linux
 // \\  Users       
/(   )\ Group
 ^^-^^
        http://wlug.paradise.net.nz/

To unsubscribe from this group, send an email to:
wellylug-unsubscribe at egroups.com
  

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 





More information about the wellylug mailing list