Spec-Zone.ru › Bash

Расширение имён файлов

После разделения слов, если не установлено опцию -f (см. Встроенную команду Set), Bash сканирует каждое слово на наличие символов ‘*’, ‘?’ и ‘[’. Если один из этих символов появляется и не является заключённым в кавычки, то слово рассматривается как шаблон и заменяется отсортированным по алфавиту списком имён файлов, соответствующих шаблону (см. Сопоставление с шаблонами). Если соответствующих имён файлов не найдено и опция оболочки nullglob отключена, слово остаётся без изменений. Если опция оболочки nullglob установлена, а совпадений нет, слово удаляется. Если опция оболочки failglob установлена, а совпадений нет, выводится сообщение об ошибке, и команда не выполняется. Если опция оболочки nocaseglob включена, соответствие выполняется без учёта регистра букв.

Когда используется шаблон для расширения имён файлов, символ ‘.’ в начале имени файла или непосредственно после слеша должен быть явно указан, если не установлена опция оболочки dotglob. Для того, чтобы сопоставить имена файлов ‘.’ и ‘..’, шаблон должен начинаться с ‘.’ (например, ‘.?’), даже если опция dotglob установлена. Если опция оболочки globskipdots включена, имена файлов ‘.’ и ‘..’ никогда не сопоставляются, даже если шаблон начинается с ‘.’. При сопоставлении не с именами файлов, символ ‘.’ не обрабатывается специально.

При сопоставлении имени файла символ слеша всегда должен быть явно указан слешем в шаблоне, но в других контекстах сопоставления он может быть сопоставлен специальным символом шаблона, как описано ниже (см. Сопоставление с шаблонами).

См. описание shopt в Встроенной команде Shopt, для описания опций nocaseglob, nullglob, globskipdots, failglob, и dotglob.

Переменная оболочки GLOBIGNORE может использоваться для ограничения набора имён файлов, соответствующих шаблону. Если GLOBIGNORE установлена, каждое соответствующее имя файла, которое также соответствует одному из шаблонов в GLOBIGNORE, удаляется из списка совпадений. Если опция nocaseglob установлена, сопоставление с шаблонами в GLOBIGNORE выполняется без учёта регистра. Имена файлов . и .. всегда игнорируются, когда GLOBIGNORE установлена и не пуста. Однако, установка GLOBIGNORE в ненулевое значение имеет эффект включения опции оболочки dotglob, поэтому все остальные имена файлов, начинающиеся с ‘.’, будут соответствовать. Чтобы получить старое поведение игнорирования имён файлов, начинающихся с ‘.’, сделайте ‘.*’ одним из шаблонов в GLOBIGNORE. Опция dotglob отключается, когда GLOBIGNORE сброшена.

  • Сопоставление с шаблонами

Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API