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


"Уайлдкард" - "дикая карта" - часть 2


     расширяется shell до фактической

    /home/larry# ls frog joe

Одно важное замечание относительно ``*'' уайлдкард. Использование этой уайлдкард не даст совпадения с именами файлов, которые начинаются с точки (``.''). Эти файлы воспринимаются как "спрятанные", хотя на самом деле их никуда не прятали. Они не показываются в списке, выдаваемом нормальной командой ls и не выбираются при использовании ``*'' уайлдкард.

Вот пример. Мы уже упоминали, что каждый каталог имеет два специальных файла: ``.'' - указание на текущий каталог и ``..'' - указание на родительский каталог. Однако, если вы используете команду ls, эти два файла не будут отображены.

    /home/larry# ls

    frog     joe     stuff

    /home/larry#

Если вы используете опцию -a в команде ls, то вы сможете отобразить имена, начинающиеся на ``.'':

    /home/larry# ls -a

    .      ..      .bash_profile      .bashrc      frog        joe

    stuff

    /home/larry#

Как видим, два специальных файла ``.'' и ``..'', также, как два других "спрятанных" файла - .bash_profile и .bashrc. Эти два файла используются при входе larry в систему. Более подробно о них в Разделе 3.13.3.

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

    /home/larry# ls *

    frog     joe     stuff

    /home/larry#

Это мера предосторожности: если ``*'' уайлдкард выбирала бы имена файлов, начинающиеся на ``.'', она бы также выбрала имена ``.'' и ``..''. Но это может быть опасно при выполнении ряда команд.

Другой уайлдкард является ``?''. ``?'' уайлдкард позволяет подставить строго один символ. Так ``ls ?'' выдаст на только имена файлов, состоящие из одного символа, а ``ls termca?'' выдаст ``termcap'', но не выдаст на экран ``termcap.backup''. Вот еще один пример:

    /home/larry# ls j?e

    joe

    /home/larry# ls f??g

    frog

    /home/larry# ls ????f

    stuff

    /home/larry#

Как видите, уайлдкард позволяет описывать много файлов за один раз. При обзоре простейших команд в Разделе 3.4 мы говорили, что команды cp и mv могут копировать или перемещать множества файлов за один раз. Например,

    /home/larry# cp /etc/s* /home/larry

скопирует все файлы в /etc , начиная с ``s''в каталог /home/larry. Формат команды cp на самом деле

    cp <file1> ... <fileN> <destination>

где <file1> ... <fileN> - список копируемых файлов, а <destination> это файл или каталог, в который производится копирование. mv имеет аналогичный синтаксис.

Обратите внимание, что если производится копирование или перемещение более, чем одного файла, <destination> должен быть каталогом. В файл скопировать или переместить можно только один файл.

3.8




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