[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