Инсталляция Linux и первые шаги


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


Одно важное замечание относительно ``*'' уайлдкард.

Использование этой уайлдкард не даст совпадения с именами файлов,

которые начинаются с точки (``.''). Эти файлы воспринимаются как

"спрятанные", хотя на самом деле их никуда не прятали. Они не

показываются в списке, выдаваемом нормальной командой 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> должен быть

каталогом. В файл скопировать или переместить можно только один

файл.




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



Книжный магазин