В именах файлов и каталогов можно использовать любые символы, кроме '/' и '>\0
'. Одним из самых распространённых средств работы для UNIX является оболочка – shell. В shell некоторые символы имеют специальное значение (которое можно отменить) – это облегчает работу с файлами. Ниже приведён список спецсимволов shell:
Таблица 7: спецсимволы shell
UNIX не запрещает использовать эти символы в именах файлов, но необходимо экранировать их специальное назначение символом '\' или заключать их в одинарные кавычки >'…'
.
Расширение файла – часть имени после последней точки; например, файл '>text.cc
' имеет расширение '>.cc
'. Для большинства программ расширение не имеет принципиального значения, но его наличие облегчает понимание назначения файла. Ниже – наиболее часто встречающиеся расширения:
Таблица 8: распространённые расширения файлов
Важно понимать, что расширение файла не имеет принципиального значения для ОС и большинства программ. Поменяв расширение файла на '>.exe
' или '>.sh
', вы не сделаете его исполняемым. А вот скрипт с именем '>do_it_now
' можно сделать исполняемым, выполнив '>chmod a+x do_it_now
'. Расширения всего лишь упрощают восприятие файлов, давая понять, что это.
Имена, начинающиеся с точки (.), часто присваиваются служебным файлам и каталогам. Эти файлы и каталоги обычно игнорируются программами и файловыми менеджерами по умолчанию. Например, команда >ls
не показывает их, если не указать ключ >'-a'
.
Многие команды допускают в качестве аргумента использование списков имён файлов. Эти списки удобно формировать с помощью шаблонов shell. Рассмотрим их ниже.
Стандартная оболочка (shell) в UNIX – очень мощный инструмент и кроме запуска команд имеет массу возможностей, упрощающих работу в консоли. Самое простое средство – шаблоны имён файлов. Например, написав команду '>ls *.c
', мы получим список всех файлов с расширением '.c' в текущем каталоге.
Важно понимать, что '>*.c
' – не один аргумент, вместо него сам shell подставит нужный список. Если в каталоге только два файла – >1.c
и >2.с
, то будет выполнена команда '>ls 1.c 2.c
'. Если ни одного файла с подходящим под шаблон именем нет, то будет подставлен сам шаблон (т. е. будет выполнена команда '>ls *.c
').
Таблица 9: шаблоны в shell
Все шаблоны, кроме '>{}
', применяются к реальному списку файлов и выбирают из него только те, которые попадают под шаблон. С помощью скобок '