
Колледж телекоммуникаций СПбГУТ ДТО Операционные системы(3 семестр) / zanyatie20_dto
.docОперационные системы и среды Колледж телекоммуникаций СПбГУТ
ДТО
Лекция № 20. Имена файлов
Лекция № 20. Имена файлов
-
Имена файлов в различных ОС.
-
Расширение имени.
1. Имена файлов в различных ОС
Имя файла — строка символов, однозначно определяющая файл в некотором пространстве имён файловой системы (ФС), обычно называемом каталогом, директорией или папкой. Имена файлов строятся по правилам, принятым в той или иной файловой и операционной системах (ОС). Многие системы позволяют назначать имена, как обычным файлам, так и каталогам и специальным объектам (символическим ссылкам, блочным устройствам и т. п.).
Символьная ссылка (также симлинк от англ. Symbolic link, символическая ссылка) — специальный файл в UNIX-подобных операционных системах, для которого в файловой системе не хранится никакой информации, кроме одной текстовой строки. Эта строка трактуется как путь к файлу, который должен быть открыт при попытке обратиться к данной ссылке. Символьная ссылка занимает ровно столько места на файловой системе, сколько требуется для записи её содержимого (нормальный файл занимает как минимум один блок раздела).
Целью подобной ссылки может быть любой объект — например, другая ссылка, или даже несуществующий файл (в последнем случае при попытке открыть его должно выдаваться сообщение об отсутствии файла). Ссылка, указывающая на несуществующий файл, называется висячей.
Практически символьные ссылки используются для более удобной организации структуры файлов на компьютере, так как позволяют одному файлу или каталогу иметь несколько имён и свободны от некоторых ограничений, присущих жёстким ссылкам (последние действуют только в пределах одного раздела и не могут ссылаться на каталоги).
Имя файла является частью полного имени файла, также называемого полным или абсолютным путём к файлу. Полное имя может включать следующие компоненты:
-
протокол или способ доступа (http, ftp, file и т. п.);
-
имя или адрес компьютера, узла сети (wikipedia.org, 207.142.131.206, \\MYCOMPUTER, SYS: и т. п.);
-
устройство хранения, диск (C:, /, SYSLIB и т. п.);
-
путь к каталогу (/usr/bin, \TEMP, [USR.LIB.SRC] и т. п.);
-
собственно имя файла, которое может содержать его расширение (.txt, .exe, .COM и т. п.).
Имя файла необходимо для того, чтобы к файлу мог обратиться пользователь. В одном каталоге не может быть двух файлов с одинаковыми именами, в разных каталогах это допустимо.
Имена файлов в разных системах
Полное имя файла (полный путь к файлу) в Windows-системах состоит из буквы диска, после которого ставится двоеточие и обратная наклонная черта (обратный слеш), затем через обратные слеши перечисляются подкаталоги, в конце пишется имя файла. Пример:
C:\Windows\System32\calc.exe
в UNIX-системах полный путь состоит из слеша (/), обозначающего корневой каталог, после которого через слеши перечисляются подкаталоги, в конце пишется имя файла. Пример:
/usr/local/bin/gcc
Имя файла состоит из двух частей, разделенных точкой:
-
Название (до точки, часто также называют именем);
-
Расширение (необязательная часть).
Полное имя файла (включая расширение) в Windows может содержать до 260 символов, данное значение определено константой MAX_PATH в Windows API; например максимально допустимое полное имя файла на диске C будет таким «C:\<256 символов>NULL». Однако юникодные версии некоторых функций позволяют использовать имена файлов, содержащие до 32000 символов, такие имена начинаются с префикса «\\?\». Пример:
\\?\C:\Windows\System32\calc.exe
При использовании префикса «\\?\» необходимо указывать абсолютный путь к файлу, относительные пути не допускаются. При использовании относительных путей максимальное полное имя файла ограничено константой MAX_PATH (260 символов).
В Windows в имени файла запрещено использование некоторых служебных символов: «\», «/», «:», «*», «?», «"», «<», «>», «|». В Linux эти символы, кроме «/», допустимы, хотя использовать их следует с осторожностью, так как некоторые из них могут иметь специальный смысл, а также из соображений совместимости с другими ОС.
Название файлу (до точки) рекомендуется давать осмысленное, говорящее о назначении файла, дабы избежать путаницы в дальнейшем.
2. Расширение имени
Расширение имени файла (англ. filename extension, часто говорят просто расширение файла или расширение) — последовательность символов, добавляемых к имени файла и предназначенных для идентификации типа (формата) файла. Это один из распространённых способов, с помощью которых пользователь или программное обеспечение компьютера может определить тип данных, хранящихся в файле.
Расширение обычно отделяется от основной части имени файла точкой. В операционных системах CP/M и MS-DOS длина расширения была ограничена тремя символами, в современных операционных системах это ограничение отсутствует. Иногда могут использоваться несколько расширений, следующих друг за другом, например, «.tar.gz».
В файловой системе FAT16 имя файла и расширение являлись отдельными сущностями, а точка, разделявшая их, реально не являлась частью полного имени файла и служила лишь для визуального отделения имени файла от расширения. В файловых системах FAT32 и NTFS точка стала обычным разрешённым символом в имени файла, поэтому ограничения на количество точек в имени файла в этих системах и их местоположения были сняты (за некоторыми исключениями, например, все конечные точки в именах файлов просто отбрасываются). Поэтому стандартный шаблон поиска *.* не имеет больше практического смысла, достаточно задать *, так как символ точки теперь подпадает под понятие любого символа.
Точность указания расширения
Иногда расширение указывает формат лишь в общем (например, расширение .doc использовалось для множества различных форматов текста — как простого, так и форматированного; а расширение «txt» не даёт никакой информации о том, в какой кодировке текст в файле), из‑за чего необходимо использовать и другие способы определения формата.
Иногда расширение указывает только один из используемых в файле форматов (например, расширение «.ogg» первоначально использовалось для всех файлов в формате Ogg, независимо от кодеков, которыми закодированы содержащиеся в контейнере Ogg данные). Также расширение обычно не указывает версию формата (например, файлы в разных версиях XHTML могут использовать одни и те же расширения).