Маски файлов

Важное свойство большинства командных оболочек системы 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

Powered by Drupal — Design by drupal.mensh.ru.