Маски файлов

Опубликовано mensh - вт, 11/22/2005 - 15:32

Важное свойство большинства командных оболочек системы Linux — способность обращаться более, чем к одному файлу по имени с использованием специальных символов — масок (wildcards).

Маски файлов в Linux

Маска * обозначает любой символ или строку символов в имени файла. Когда в имени файла используется символ *, командная оболочка заменяет его на всевозможные варианты, которые встречаются в именах файлов рассматриваемого каталога.

Допустим, в текущем каталоге имеются следующие файлы:

$ 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

Поделиться с друзьями