Важное свойство большинства командных оболочек системы Linux — способность обращаться более, чем к одному файлу по имени с использованием специальных символов — масок (wildcards).
Маска * обозначает любой символ или строку символов в имени файла. Когда в имени файла используется символ *, командная оболочка заменяет его на всевозможные варианты, которые встречаются в именах файлов рассматриваемого каталога.
Допустим, в текущем каталоге имеются следующие файлы:
$ ls
example1 example2 index1.html index2.html
Для обращения ко всем файлам, в имени которых содержится символ 1, следует использовать команду:
$ ls *1*
example1 index1.html
Из приведенного примера, следует, что символ * соответствует любому символу (группе любых символов). Маска, состоящая из единственного символа *, соответствует всем именам файлов текущего каталога:
$ ls *
example1 example2 index1.html index2.html
Примеры:
$ ls *html
index1.html index2.html
$ ls index*
index1.html index2.html
$ ls *x*
example1 example2 index1.html index2.html
Механизмом безопасности предусмотрено, чтобы символ * не распознавал имена файлов, начинающихся с одной точки (.). Эти файлы рассматриваются как скрытые (hidden).
Для того, чтобы в список попали имена файлов, начинающихся с символа ., используется команда:
$ ls -a
. .. example1 example2 index1.html index2.html
Ещё одним специальным символом в масках является символ ?, соответствующий одному символу:
$ ls example?
example1 example2
$ ls index?.html
index1.html index2.html