3.3.3.1. Using shell features
In the example on moving files we already saw how the shell can
manipulate multiple files at once. In that example, the shell finds
out automatically what the user means by the requirements between
the square braces "[" and "]". The shell can substitute ranges of numbers and
upper or lower case characters alike. It also substitutes as many
characters as you want with an asterisk, and only one character
with a question mark.
All sorts of substitutions can be used simultaneously; the shell
is very logical about it. The Bash
shell, for instance, has no problem with expressions like ls dirname/*/*/*[2-3].
In other shells, the asterisk is commonly used to minimize the
efforts of typing: people would enter cd
dir* instead of cd directory. In
Bash however, this is not
necessary because the GNU shell has a feature called file name
completion. It means that you can type the first few characters of
a command (anywhere) or a file (in the current directory) and if no
confusion is possible, the shell will find out what you mean. For
example in a directory containing many files, you can check if
there are any files beginning with the letter A just by typing
ls A and
pressing the Tab key twice, rather than
pressing Enter. If there is only one file
starting with "A", this file will be
shown as the argument to ls (or any shell
command, for that matter) immediately.