...
Пятница , 15 ноября 2024

гл. 16. Надо еще, может быть

гл. 16. Надо еще, может быть, отметить, что речь пойдет конкретно о файловой системе типа ext2fs, основном на данный момент типе файловых систем для Linux (существуют и другие типы файловых систем, об этом тоже будет сказано в гл. 16).

4.1. ФАЙЛЫ И ИХ ИМЕНА

Компьютер есть не что иное, как инструмент для обработки информации. А информация в любой ОС хранится на носителях в виде файлов. С точки зрения ОС файл представляет собой непрерывный поток (или последовательность) байтов определенной длины. Внутренний формат файла операционную систему не интересует. Но ОС должна дать файлу какое-то имя, с помощью которого пользователь, а точнее, программы-приложения, будут обращаться к файлу. Как организовать это обращение – дело файловой системы, пользователя это чаще всего не интересует. Поэтому с точки зрения пользователя файловая система выглядит как логическая структура каталогов и файлов.

Имена файлов в Linux могут иметь длину до 255 символов и состоять из любых символов, кроме символа с кодом 0 и символа / (слэша). Однако имеется еще ряд символов, которые имеют в оболочке shell специальное значение и которые поэтому не рекомендуется включать в имена. Это следующие символы:

! @ # $ ~ %* () [] {} ‘ ‘ :; › ‹ ` пробел.

Если имя файла содержит один из этих символов (это не рекомендуется, но возможно), то вы должны перед этим символом поставить символ обратного слэша ” (в том числе и перед самим этим слэшем, т. е. повторить его дважды).

[user]$ mkdir \myhis

Можно также заключить имя файла или каталога с такими символами в двойные кавычки. Например, для создания каталога с именем ‘My old files’ следует использовать команду:

[user]$ mkdir 'My old files'ogFpg5lSiMo

так как команда

[user]$ mkdir My old files

создаст каталог с именем ‘My’.

Аналогичным образом можно поступать и с другими символами, перечисленными выше, т. е. их можно включать в имена файлов, если имя файла взять в двойные кавычки или отменить специальное значение символа с помощью обратного слэша. Но все же предпочтительнее не использовать эти символы, включая пробел, в именах файлов и каталогов, потому что могут возникнуть проблемы при обращении к таким файлам из некоторых приложений, а также при переносе таких файлов в другие файловые системы.

Но к точке сказанное не относится, и в Linux часто ставят более одной точки в именах файлов, например, This_is.a.forth-chapter_of_my_book.about.Linux. При этом теряет смысл такое понятие (принятое в DOS), как расширение имени файла, хотя все же часто последние части имени, отделенные точками, используют для обозначения файлов каких-то особых типов (например,.tar.gz используется для обозначения сжатых архивов). Но исполняемые и неисполняемые файлы в Linux распознаются не по расширениям имен файлов. Для этого существуют другие признаки, о которых мы скажем чуть позже. Точка имеет особое значение в именах файлов. Если она является первым символом имени, то данный файл считается скрытым для некоторых команд, например, он не показывается при выполнении команды ls.

В Linux различаются символы верхнего и нижнего регистра в именах файлов. Поэтому FILENAME.tar.gz и filename.tar.gz вполне могут существовать одновременно и являться именами разных файлов.

Мы привыкли считать, что файл полностью определяется его именем. Однако с точки зрения ОС и файловой системы это немного не так (точнее, совсем не так). Хотя мы будем говорить о внутреннем устройстве файловой системы только в конце книги (гл. 16), кое-что надо сказать уже сейчас.

Каждому файлу в Linux соответствует так называемый ‘индексный дескриптор’ файла, или ‘inode’, (однозначного перевода этого термина на русский язык не существует, в разных книгах эту структуру называют по-разному). Именно индексный дескриптор содержит всю необходимую файловой системе информацию о файле, включая информацию о расположении частей файла на носителе, типе файла и многое другое. Индексные дескрипторы файлов содержатся в специальной таблице (inode table), которая создается при создании файловой системы на носителе. Каждый логический и физический диск имеет собственную таблицу индексных дескрипторов. Дескрипторы в этой таблицы пронумерованы последовательно, и именно номер дескриптора файла является его истинным именем в системе (этот номер мы будем называть индексом файла). Однако для человека такая система имен неудобна. Сможете ли вы вспомнить, что сохранили в файле с номером 56734? Поэтому файлам даются еще ‘человеческие’ имена, и помимо этого файлы группируются в каталоги.

О нас admin

Проверить еще

Backyard Landscape

Что такое быстровозводимые здания сегодня?

Желание жить только в самом безопасном и комфортном месте присуще каждому человеку, ведь это позволяет …

Добавить комментарий

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.