Инструменты пользователя

Инструменты сайта


linux:console:wildcards

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
linux:console:wildcards [2026/07/03 19:04] – [Подстановочные знаки (Standard Wildcards или Globbing Patterns)] so_v_alinux:console:wildcards [2026/09/12 12:10] (текущий) – so_v_a
Строка 1: Строка 1:
 +<!DOCTYPE markdown>
 +
 # Подстановочные знаки (Standard Wildcards или Globbing Patterns) # Подстановочные знаки (Standard Wildcards или Globbing Patterns)
  
 Подстановочные знаки — это символы, имеющие особое значение. Они могут представлять буквы или цифры, наборы символов или даже множество символов.\\ Подстановочные знаки — это символы, имеющие особое значение. Они могут представлять буквы или цифры, наборы символов или даже множество символов.\\
-Когда мы помещаем подстановочные знаки вместо имени файла, то bash расширит эти подстановочные знаки до любого соответствующего имени файла, это называется расширением имени файла или подстановкой ([[https://tldp.org/LDP/abs/html/globbingref.html|Globbing]]). + 
-.+Когда мы помещаем подстановочные знаки вместо имени файла, то командная оболочка (bash и др.) расширит эти подстановочные знаки до любого соответствующего имени файла, это называется расширением имени файла или подстановкой ([[https://tldp.org/LDP/abs/html/globbingref.html|Globbing]]). 
 + 
 +<blockquote>Командная оболочка (bash и др.) раскрывает шаблон имён файлов **до** запуска команды, которая затем обрабатывает полученный список файлов.</blockquote> 
 ## Wildcards ## Wildcards
  
Строка 30: Строка 35:
 <blockquote>Если мы не укажем явный путь или разделитель путей (т.е. "/") в наши шаблоны, то bash не будет расширяться до имен файлов за пределами текущего каталога.</blockquote> <blockquote>Если мы не укажем явный путь или разделитель путей (т.е. "/") в наши шаблоны, то bash не будет расширяться до имен файлов за пределами текущего каталога.</blockquote>
 . .
 +
 ## Примеры использования ## Примеры использования
  
Строка 50: Строка 56:
 Если бы мы хотели сопоставить //один или несколько символов//, то ** * ** не сработает. Однако если мы объединим эти два понятия, как ** ?* **, то это будет соответствовать //одному или нескольким символам//. Если бы мы хотели сопоставить //один или несколько символов//, то ** * ** не сработает. Однако если мы объединим эти два понятия, как ** ?* **, то это будет соответствовать //одному или нескольким символам//.
 ### Наборы и диапазоны, [] ### Наборы и диапазоны, []
 +
 +Квадратные скобки (**[]**) позволяют нам реализовать два типа совпадений. Мы можем сопоставить список символов или диапазон, разделенный дефисом "**-**".
 +
 +Если бы мы хотели перечислить все файлы длиной в три буквы, то могли бы это сделать так:
 +```
 +$ ls [a-z][a-z][a-z]
 +abc xyz
 +
 +$ ls [abcxyz][abcxyz][abcxyz]
 +abc xyz
 +
 +$ ls [a-y][a-y][a-y]
 +abc
 +
 +$ ls [A-Z][A-Z][A-Z]
 +
 +```
 +
 +В строке 1 мы указали bash три диапазона для сопоставления. Каждый диапазон будет соответствовать только одному символу, поэтому для соответствия трем символам потребовалось три диапазона. 
 +
 +Также обратите внимание, что //последняя команда ни с чем не совпала, поскольку Linux чувствителен к регистру//.
 +
 +Строки 1 и 3 дают одинаковый результат, но если в строке 1 используется диапазон, то в строке 3 используются наборы.\\
 +Мы могли бы объединить диапазоны в наборе.\\
 +
 +Чтобы сопоставить //все буквы и цифры, как в верхнем, так и в нижнем регистре//, мы должны использовать [a-zA-Z0-9].\\
 +Разместив "**!**" в начале набора или диапазона мы указываем bash, чтобы он соответствовал всему, //кроме символов, перечисленных в наборе//.
 +
 +<blockquote>Все специальные символы теряют смысл внутри квадратных скобок (**[]**), за исключением "**-**" который приобретает особый смысл, т. е. **[? \*]** будет соответствовать только знаку вопроса или восклицательному знаку, но они не будут использоваться как подстановочные символы.</blockquote>
 +.
 +### Списки, {}
 +
 +Фигурные скобки **{}** используются для хранения списка терминов, разделенных запятыми, которые могут быть сопоставлены.
 +
 +```
 +$ ls {abc,xyz}1
 +abc1 xyz1
 +
 +$ ls abc{1,3}
 +abc1 abc3
 +```
 +.
  
 ## Документация ## Документация
  
-Ссылка на  +Ссылка на [[https://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm|Linux Documentation Project - Wildcards]] 
-https://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm+
/var/www/html/dokuwiki/data/attic/linux/console/wildcards.1783105472.txt.gz · Последнее изменение: — so_v_a