On Wednesday 07 December 2016 12:55, BartC wrote: > But even Linux's 128KB will fill if someone wanted a command line that > listed 20,000 files individually. But it would be spectacularly bad use > of a command line interface which was designed for humans.
That's EXACTLY the point of having the shell do globbing. I want to pass a whole lot of file names to some obscure command. I don't remember how that command deals with metacharacters, but it doesn't matter: I just say command fooba?.jpg {here,there}/*.jpg another/place/*.{png,jpg} [a-z]/IMG* and the shell expands the metacharacters ? {...} * [...] regardless of how much smarts the command itself has. There are thousands of programs I might use, and they may implement who knows how many different globbing rules: - some might support * and ? but not {...} - some might support SQL-like % and _ - some might insist on regular expressions instead of globs - some might support the full set of globbing metacharacters, but have bugs - some might not support any metacharacters - some might not support ** for recursive wildcards Don't say "they'll all call a library to do it for them", because even if such a library exists, its not necessarily the case that everyone will use it, or *want* to use it. There are always those who insist on doing things their own way, for their own reasons: https://www.xkcd.com/1168/ https://explainxkcd.com/wiki/index.php/1168:_tar I can't easily know in advance what globbing rules I can use for a particular command, but I can know what rules my shell uses, and now *all* commands support the same, whether they know it or not. -- Steven "Ever since I learned about confirmation bias, I've been seeing it everywhere." - Jon Ronson -- https://mail.python.org/mailman/listinfo/python-list