[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-rabota-v-cli-bash-chto-takoe-wildcards-glob-patterns-i-kak-ikh-ispolzovat":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":21,"progress":22,"seo":23},151,"chto-takoe-wildcards-glob-patterns-i-kak-ikh-ispolzovat",4,"rabota-v-cli-bash","Работа в CLI (Bash)","💻","Что такое wildcards (glob patterns) и как их использовать?","**Wildcards (маски, шаблоны подстановки, glob patterns)** — это специальные символы, которые shell раскрывает в список подходящих имён файлов до передачи команде.\n\n### Аналогия\n\nWildcards работают как джокер в карточной игре: символ `*` заменяет «любую последовательность карт», `?` — «ровно одну карту». Shell сам «тасует колоду» (список файлов) и подставляет подходящие.\n\n### Основные wildcards\n\n| Символ | Значение | Пример |\n|---|---|---|\n| `*` | Любое количество любых символов (включая ноль) | `*.java` — все файлы с расширением .java |\n| `?` | Ровно один любой символ | `file?.txt` — file1.txt, fileA.txt |\n| `[...]` | Один символ из указанного набора | `[abc].txt` — a.txt, b.txt, c.txt |\n| `[!...]` или `[^...]` | Один символ НЕ из набора | `[!0-9]*` — не начинающиеся с цифры |\n| `{a,b,c}` | Перечисление вариантов (brace expansion) | `{dev,prod}.yml` — dev.yml, prod.yml |\n\n### Практические примеры\n\n```bash\n# Все Java-файлы\nls *.java\n\n# Все файлы, начинающиеся с \"App\"\nls App*\n\n# Файлы с однобуквенным именем\nls ?.txt\n\n# Файлы с расширением .java или .xml\nls *.{java,xml}\n\n# Диапазоны\nls file[0-9].txt           # file0.txt ... file9.txt\nls log_[a-z]*.txt          # Начинающиеся с маленькой буквы после \"log_\"\n\n# Brace expansion для создания структуры проекта\nmkdir -p src\u002F{main,test}\u002F{java,resources}\n# Создаст: src\u002Fmain\u002Fjava, src\u002Fmain\u002Fresources, src\u002Ftest\u002Fjava, src\u002Ftest\u002Fresources\n\n# Brace expansion с диапазонами\ntouch file{1..10}.txt       # file1.txt ... file10.txt\necho {01..12}               # 01 02 03 ... 12 (с ведущими нулями)\n\n# Рекурсивный glob (bash 4+ с включённым globstar)\nshopt -s globstar\nls **\u002F*.java                # Все .java файлы рекурсивно\n```\n\n### Важное отличие brace expansion от glob\n\nBrace expansion `{}` — это механизм bash, а не glob. Он работает даже если совпадающих файлов нет (генерирует строки), тогда как `*` и `?` раскрываются только в существующие файлы. Если ни один файл не подходит под glob, bash по умолчанию оставляет шаблон как есть (буквально `*.xyz`).\n\n> **На собеседовании:** интервьюер проверяет, понимаете ли вы, что glob-раскрытие выполняет shell до запуска команды, а не сама команда. Частая ошибка — путать brace expansion `{a,b}` (всегда раскрывается) с glob `[ab]` (раскрывается только в существующие файлы).","","junior",[15,16,17,18,19,20],"cli","linux","glob","wildcards","bash","шаблоны",[],null,{"title":24,"description":25,"ogTitle":26,"ogDescription":27,"keywords":28,"schemaAnswer":34,"featuredSnippetReady":35},"Wildcards (glob patterns) в Bash: что это и как использовать — Gymterview","Что такое wildcards и glob patterns в Bash: символы *, ?, [], {}, расширенные шаблоны. Примеры использования масок для подстановки имён файлов.","Wildcards и glob patterns в Bash — подстановка имён файлов | Gymterview","Подробный разбор wildcards в Bash: *, ?, [], {} и расширенные glob patterns с примерами использования.",[18,29,30,31,32,33,17],"glob patterns","маски файлов","bash шаблоны","подстановка файлов","звёздочка bash","Wildcards (glob patterns) — специальные символы, которые shell раскрывает в список подходящих имён файлов до передачи команде. Основные: * — любое количество символов, ? — один символ, [abc] — один из указанных символов, {a,b} — перебор вариантов.",true]