Знакомство с Linux


"Уайлдкард" - "дикая карта"


Ключевое свойство большинства оболочек Unix - это способность ссылаться сразу более, чем на один файл, используя для этого специальные символы. Эти, так называемые "дикие карты" (wildcards), позволяют ссылаться, скажем, на все файлы, содержащие символ "n". (прим. переводчика: Мне не известен хороший перевод этой идиомы (wildcards), наиболее часто у нас встречается "генераторы" и "расширители" символов - но это тяжеловато. Чтобы далее не испытывать мучений - буду использовать слово "уайлдкард". Кстати, и оболочку удобнее далее именовать как shell, так легче воспринимается то, что это язык программирования).

Уайлдкард ``*'' относится к любому символу или строке символов в имени файла. Например, когда вы используете символ ``*'' в имени файла shell заменяет ее всеми возможными именами файлов из каталога, на который вы ссылаетесь. Вот простенький пример. Предположим, что Larry имеет файлы frog, joe и stuff в своем текущем каталоге:

    /home/larry# ls

    frog     joe     stuff

    /home/larry#

Для обращения сразу ко всем файлам с буквой ``o'' в имени, мы можем использовать команду

    /home/larry# ls *o*

    frog     joe

    /home/larry#

Как видите, ``*'' уайлдкард была заменена всеми возможными именами файлов из имевшихся в текущем каталоге.

Использование просто ``*''даст совпадение со всеми именами, поскольку все символы совпадают с уайлдкард.

    /home/larry# ls *

    frog     joe     stuff

    /home/larry#

Вот еще несколько примеров.

    /home/larry# ls f*

    frog

    /home/larry# ls *ff

    stuff

    /home/larry# ls *f*

    frog     stuff

    /home/larry# ls s*f

    stuff

    /home/larry#

Процесс замены ``*'' на имена файлов называется расширением уайлдкард и выполняется shell. Это важно: конкретные команды, вроде ls, никогда не видят ``*'' в своем списке параметров. Shell, расширяя уайлдкард, включает в список параметров все имена, прошедшие сравнение с шаблоном. Так что команда

    /home/larry# ls *o*




- Начало -  - Назад -  - Вперед -