Значение «» в шаблоне глобуса

Я новичок Linux / Unix. Я читал о «Glob» и «Globing Pathnames», и я нашел эту странную (мне) часть в man-страницах :

«[–0]» соответствует трем символам «-», «.», «0», так как «/» невозможно сопоставить.

Я запутался! Как две тире и 0 совпадают . ? Какова роль / характера здесь? Это ошибка на странице руководства?

Я сделал поиск, чтобы найти объяснение для этого, без везения.

2 Solutions collect form web for “Значение «» в шаблоне глобуса”

Как объясняется в начале этого параграфа на этой странице man , символ «-», если он помещается между двумя символами , представляет собой диапазон символов, а также символ «-», когда он ставится как первый или последний символ между скобками , имеет буквальное значение. Итак, первая тире действительно означает символ «-», а вторая тире – спецификатор диапазона. Таким образом, весь шаблон состоит из всех символов между '-' и '0', которые в локали C / POSIX (но обычно не в других):

 - . / 0 

и поскольку «/» не может быть сопоставлен , шаблон соответствует трем символам «-», «.», «0».

Это не имеет ничего общего с самими страницами man: это описание синтаксиса шаблонов glob, к которым относится страница man, о которой вы смотрите.

В шаблоне glob скобки ограничивают набор символов. Например, [abc] соответствует любому из символов a , b или c . Шаблон fo[abc] соответствует foa , fob и foc (но не, например, foo , fo или foab ).

Внутри скобок символ - имеет особое значение: он используется для формирования диапазона символов. Поэтому вместо сопоставления 0 , - или 9 шаблон [0-9] соответствует любой цифре. Диапазоны могут комбинироваться с другими диапазонами и одиночными символами; например, [A-Za-z_] в кодировке ASCII соответствует любой букве или подчеркиванию.

Знак минус интерпретируется только как индикатор диапазона, если это будет синтаксически разумным: если это первый или последний символ внутри скобок, или если он приходит сразу после другого диапазона, - означает сам. Таким образом, в [--0] первое - обозначает себя, а второе - индикатор диапазона, поэтому этот шаблон соответствует любому символу, который находится между - и 0 в текущей локали.

В кодировке ASCII этот диапазон охватывает следующие 4 символа: - . , / , 0 . Символ / не может отображаться внутри имени файла, поскольку он всегда интерпретируется как разделитель каталога; поэтому шаблон [--0] соответствует только 3 символам - [--0] и 0 .

Обратите внимание, что в локалях, отличных от ASCII, шаблон может соответствовать другому набору символов. Эффект настройки локали на диапазонах символов несколько изменен между системами и приложениями.

Большинство движков регулярных выражений используют тот же синтаксис для диапазонов символов, что и шаблоны оболочки оболочки, с двумя отличиями:

  • В шаблоне glob, если первый символ после открытия скобки является a ! , шаблон соответствует всем символам, которые не находятся в наборе. В регулярном выражении символ ^ играет ту же роль. Некоторые раковины поддерживают ^ а также ! ,
  • Некоторые варианты регулярных выражений позволяют \ сделать следующий символ утрачивающим свое особое значение, например [\[\]\-a] соответствует [ , ] , - или a . В других вариантах регулярного выражения и в шаблонах glob обратная косая черта в наборах символов не имеет особого значения. Если ] установлен в набор, он должен быть первым (невозможно указать пустой набор: [] – неполный шаблон, соответствующий закрывающей скобке или любому символу, который приходит после этого).
  • Как удалить файлы с помощью ~?
  • Выполнить команду во всех подпапках
  • Как скопировать несколько файлов, но сохранить их расширения одинаково?
  • Что именно сделал mv / tmp / folder / * / * в моей файловой системе?
  • Шаблон файла оболочки, который расширяет файлы точек, но не `..`?
  • Скопировать файлы .txt в определенную директорию
  • Есть ли причина использовать несколько вопросительных знаков вместо звездочки в расширении имени файла?
  • Удалите все файлы с префиксом, кроме одного из самых больших
  • Interesting Posts

    Alt-Tab не работает для гостевых операционных систем в Virtualbox на Fedora 25

    Абсолютные указатели ссылок, способные работать в другой системе

    Уязвимость Bash CVE-2014-6271 (Shellshock) исправлена ​​на Debian 6.0 (Squeeze)

    Raspbian: как ifplugd работает на lo и другом интерфейсе

    Могу ли я заставить davf игнорировать недоверенные сертификаты?

    Не удается настроить vlan на устройстве

    Как я могу узнать, защищена ли защита паролем, прежде чем подключаться к нему?

    Доступ к каталогу как другому пользователю

    Как установить пользовательский размер по умолчанию для новых окон терминала XFCE?

    написать существующие конфигурации xfce4 на диск

    Почему scp не показывает истинную скорость загрузки?

    В bash, как я могу удалить псевдоним без выхода из системы?

    Выход из терминала «nohup ./my_script &» => «У вас есть рабочие задания». ОК, чтобы выйти?

    Что определяет максимальный размер для одного аргумента команды?

    Визуально прозрачные и входные прозрачные окна

    Linux и Unix - лучшая ОС в мире.