К содержимому
Claude Code с 0:полный курс
Уровень 3 · Поиск и потоки 4 мин Проверено автором · 2 июл. 2026 г.

Маски имён: * и ?

Маски «*» и «?» описывают сразу много файлов одной записью: «*.txt» — это все текстовые файлы. Как их применять.

Уровень 3 · 0 / 10 уроков0%

До этого момента ты искал и открывал файлы по точному имени. Но что, если файлов десятки и нужно охватить их разом — например, «все текстовые файлы»? Перечислять каждое имя вручную утомительно. Тут на помощь приходят маски имён.

Звёздочка * — «любая часть имени»

Знак * заменяет любое число любых символов — хоть ноль, хоть сотню. Запись *.txt читается так: «что угодно, а в конце .txt». Под неё попадут и report.txt, и notes.txt, и просто a.txt.

Почему это удобно? Ты описываешь не конкретный файл, а правило, по которому система сама подбирает все подходящие имена. Одна короткая запись — и весь набор файлов у тебя в руках.

Знак вопроса ? — «ровно один символ»

? строже: он заменяет ровно один любой символ — не больше и не меньше. Например, маска file?.txt подойдёт под file1.txt и fileA.txt, но не подойдёт под file12.txt (там два символа) и не под file.txt (там ни одного).

Совет

Запомни просто: * — «сколько угодно», ? — «ровно один». Их можно даже смешивать: data?.* найдёт data1.csv, data9.txt и так далее.

Применим маску в поиске

Маски особенно полезны вместе с командой поиска. Запиши маску в кавычках:

find . -name "*.txt"

Кавычки тут важны: без них оболочка может «раскрыть» звёздочку сама ещё до запуска команды, и поиск отработает не так, как ты ждёшь. Поэтому маску для find всегда берём в двойные кавычки.

Попробуй

В папке лежат report.txt, report2.txt, notes.md и data.csv. Найди только текстовые файлы:

find . -name "*.txt"

Команда покажет report.txt и report2.txt, а notes.md и data.csv пропустит — они под маску не подходят. Подсказка под терминалом, если что.

Мини-проверка

Под какую маску попадёт файл report2.txt, но НЕ попадёт notes.md?

Проверь себя

Отвечено 0/3
Режим:

Что заменяет знак `*` в маске?

Сколько символов заменяет `?`

Какая маска найдёт все файлы с расширением .txt?

Выполни задание в терминале и ответь на вопросы, чтобы завершить урок.

📝 Мои заметки

Сохраняется автоматически в этом браузере · видно на странице «Заметки».

Задание

Найди все файлы с расширением .txt с помощью маски: find . -name "*.txt".

Tab дополнить · прошлые · Ctrl+L очистить · help команды

  • Не выполнено: Поиск по маске
  • Не выполнено: Найдены .txt файлы

Вопросы и ответы по уроку

Что заменяет знак `*` в маске?

`*` — это «сколько угодно любых символов». Поэтому `*.txt` подходит и под `a.txt`, и под `report.txt`.

Сколько символов заменяет `?`

`?` — это ровно один любой символ. `file?.txt` подойдёт под `file1.txt`, но не под `file12.txt`.

Какая маска найдёт все файлы с расширением .txt?

`*.txt` означает «любое имя, заканчивающееся на .txt».

Под какую маску попадёт файл report2.txt, но НЕ попадёт notes.md?

Маска report* означает «начинается на report, а дальше что угодно». Файл notes.md на report не начинается, поэтому под маску не попадает.

Почитать по теме в блоге

Листай уроки клавишами · поиск по ⌘K