Использование символов подстановки в именах файлов
Одно имя файла может указывать на множество файлов с использованием символов подстановки. Символы подстановки в make — это ‘*’, ‘?’ и ‘[…]’, такие же, как в оболочке Bourne. Например, *.c указывает на список всех файлов (в текущей директории), имена которых заканчиваются на ‘.c’.
Если выражение соответствует нескольким файлам, результаты будут отсортированы.2 Однако несколько выражений не будут сортироваться глобально. Например, *.c *.h выведет все файлы, имена которых заканчиваются на ‘.c’, отсортированные, а затем — все файлы, имена которых заканчиваются на ‘.h’, также отсортированные.
Символ ‘~’ в начале имени файла также имеет особое значение. Если он стоит сам по себе или за ним следует слеш, он представляет вашу домашнюю директорию. Например, ~/bin расширяется до /home/you/bin. Если за ‘~’ следует слово, эта строка представляет домашнюю директорию пользователя с этим именем. Например, ~john/bin расширяется до /home/john/bin. На системах, где нет домашней директории для каждого пользователя (например, MS-DOS или MS-Windows), эту функциональность можно смоделировать, установив переменную окружения HOME.
Расширение символов подстановки выполняется make автоматически в целевых файлах и в предварительных условиях. В рецептах за расширение символов подстановки отвечает оболочка. В других контекстах расширение символов подстановки происходит только если вы его запрашиваете явно с помощью функции wildcard.
Особое значение символа подстановки можно отключить, поставив перед ним обратную косую черту. Таким образом, foo\*bar будет ссылаться на конкретный файл, имя которого состоит из ‘foo’, звездочки и ‘bar’.
| • Примеры использования символов подстановки | Несколько примеров. | |
| • Ловушки при использовании символов подстановки | Проблемы, которых следует избегать. | |
| • Функция символов подстановки | Как вызвать расширение символов подстановки там, где оно обычно не происходит. |
Copyright © 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/make/manual/html_node/Wildcards.html