Флаг начальной загрузки с древних времен, где Вы указали бы на запись раздела MBR как загрузочную, таким образом, Вы могли указать, где загрузчик находился.
На современном OS'es это широко не использовано, поскольку MBR состоит из минимального перегружателя, который загружается или в его собственный раздел или переходит к другой области на диск, где код загрузчика сохранен. (MBR может содержать или исполняемый код или таблицу раздела начальной загрузки среди прочего. См. также эту ссылку на статью о MBR).
Как пример, GRUB записан в MBR и загружает любой раздел, который Вы выбираете.
См. также эту (довольно маленькую) страницу Wikipedia о флаге начальной загрузки: en.wikipedia.org/wiki/Boot_flag
Заключая в кавычки из Единственной версии 2 спецификации Unix, объем” Команды и Утилиты", §2.13.3:
Если имя файла начинается с периода (
.
) период должен быть явно подобран при помощи периода как первый символ шаблона или сразу после символа наклонной черты. (…) Это является неуказанным ли явный период в списке соответствия выражения скобки, такой как[.abc]
может соответствовать ведущему периоду в имени файла.
Нет никакого исключения, которое сделало бы второй период в ..
, или пустая строка после единственного периода в .
, не подобранный подстановочным знаком в .*
. Поэтому в стандарте говорится это .*
соответствия .
и ..
, раздражающий, хотя это может быть.
Проход выше описывает поведение оболочки (sh
команда). Раздел по glob
C библиотечная функция refererences этот проход.
Язык является точно тем же в версии 3, также известной как POSIX:2001 и IEEE 1003.1-2001, который является тем, что реализуют актуальнейшие системы.
Тире, удар и ksh93 выполняют POSIX. Pdksh и zsh (даже под emulate sh
) не делать.
В ksh можно сделать .*
пропустить .
и ..
путем установки FIGNORE='.?(.)'
, но это имеет побочный эффект создания *
включайте точечные файлы. Или можно установить FIGNORE='.*'
, но затем .*
ничему не соответствует.
В ударе можно сделать .*
пропустить .
и ..
путем установки GLOBIGNORE='.:..'
, но это имеет побочный эффект создания *
включайте точечные файлы. Или можно установить GLOBIGNORE='.*'
, но затем .*
ничему не соответствует.
Вероятно, Вы имеете в виду функциональность в расширении удара о globignore. По умолчанию соответствие расширения удара. и.. но чтение человека:
The GLOBIGNORE shell variable may be used to restrict the set of file names matching
a pattern. If GLOBIGNORE is set, each matching file name that also matches one of
the patterns in GLOBIGNORE is removed from the list of matches. The file names ``.''
and ``..'' are always ignored when GLOBIGNORE is set and not null. However, setting
GLOBIGNORE to a non-null value has the effect of enabling the dotglob shell option,
so all other file names beginning with a ``.'' will match. To get the old behavior
of ignoring file names beginning with a ``.'', make ``.*'' one of the patterns in
GLOBIGNORE. The dotglob option is disabled when GLOBIGNORE is unset.
Можно установить переменную GLOBIGNORE=.:..
таким образом, когда Вы tipe что-то вроде этого:
rm -r * .*
Вы удаляете только текущий каталог. Стандарт POSIX только указывает это. текущий каталог и.. в родителе текущего каталога. Особое значение.* интерпретируется ударом или другими оболочками (или программы как grep).
man
, man glob
или страницы справочника для присутствования? Я не мог найти человека здесь (к моему удивлению).
– Ciro Santilli 新疆改造中心法轮功六四事件
26.11.2013, 21:18
Насколько я могу сказать, LSB 4.1 не требует bash
и только sh
.
Для sh
это следует за POSIX (с одним незначительным несоответствующим внутренним абонентом).
bash
не всегда выполняет POSIX. только, когда это вызывается какsh
. – strugee 26.11.2013, 21:46