Существует три основных типа
файлов:
Система распознает только файлы этих типов. Однако в операционной системе также применяются многие производные типы файлов.
Большая часть файлов относится к стандартному типу. Другое название стандартных файлов - обычные файлы. Стандартные файлы предназначены для хранения данных.
Текстовые файлы - это стандартные файлы, содержащие информацию, которая может быть прочитана пользователем. Такие файлы хранят данные в формате ASCII. Их можно просмотреть или напечатать. Строки текстовых файлов не должны содержать символ NUL, а их длина с учетом символа новой строки не может превышать значение {LINE_MAX} байт.
Текстовый файл может содержать управляющие и непечатаемые символы (отличные от NUL). Если стандартная служебная программа получает текстовый файл на вход или записывает его в качестве вывода, то она должна уметь обрабатывать встреченные специальные символы. В противном случае, в описании этой программы должны быть явно заданы ограничения, которые накладываются на входные текстовые файлы.
Двоичные файлы - это стандартные файлы, содержащие данные, которые может прочитать компьютер. Примером двоичного файла может быть исполняемый файл, в котором содержатся инструкции для системы по выполнению некоторого задания. Команды и программы хранятся в двоичном виде в форме исполняемых файлов. Для преобразования текста ASCII в двоичный код предназначены специальные программы-компиляторы.
Единственное различие между текстовыми и двоичными файлами состоит в том, что текстовые файлы разбиты на строки, не содержащие символа NUL и заканчивающиеся символом новой строки, длина которых не превосходит {LINE_MAX} байт.
Файлы каталогов содержат информацию, которая необходима системе для доступа к файлам всех типов, но при этом в них не хранится сама информация из файлов. В результате каталоги занимают меньше места, чем стандартные файлы. Кроме того, каталоги позволяют создать гибкую многоуровневую структуру файловой системы. Каждая запись каталога связана с файлом или подкаталогом и содержит имя файла и номер индексного дескриптора файла (номер i-узла). Номер i-узла ссылается на уникальный индексный дескриптор, присвоенный файлу. В индексном дескрипторе описано физическое расположение данных, связанных с файлом. Для создания каталогов и управления ими предназначен отдельный набор команд.
Дополнительная информация приведена в разделе Обзор каталогов.
К специальным файлам относятся файлы устройств и временные файлы, создаваемые процессами. Существует три основных типа специальных файлов: FIFO (first-in, first-out), блочные и символьные. Файлы FIFO также называются каналами. Канал создается на ограниченное время одним процессом для обмена данными с другим процессом. Такие файлы удаляются после завершения работы первого процесса. Блочные и символьные файлы определяют устройства.
Для каждого файла устанавливается набор разрешений (прав доступа), задающих группы пользователей, которые могут читать, изменять или выполнять файл.
Дополнительная информация о правах доступа к файлам приведена в разделе Права доступа к файлам и каталогам.
Имя каждого файла должно быть уникальным в каталоге, где он хранится. Таким образом обеспечивается уникальность пути к файлу в системе. Существуют следующие основные правила присвоения имен файлам:
/ \ " ' * ; - ? [ ] ( ) ~ ! $ { } < > # @ & |
Путь к объекту файловой системе состоит из имен всех каталогов, которые расположены выше данного файла или каталога в дереве каталогов.
Любой путь в файловой системе начинается с корневого каталога /, поэтому для любого файла существует уникальный путь от корневого каталога, или полный путь. Имя полного пути начинается с косой черты (/). В приведенном примере файловой системы полный путь к файлу h - /B/C/h. Обратите внимание, что в этой файловой системе есть два файла с именем g. Однако поскольку полные пути к файлам различны (/B/g и /B/C/g), то у каждого файла с именем g есть уникальное полное имя. Все компоненты пути файла, за исключением последнего, - это каталоги. Последний компонент пути может представлять собой имя файла.
Примечание: Длина пути не может превышать 1023 символа.
Шаблон с символами подстановки позволяет задать сразу несколько имен файлов или каталогов. Символы подстановки - звездочка (*) и вопросительный знак (?). Метасимволы - квадратные скобки ([]), дефис (-) и восклицательный знак (!).
Символ * заменяет любую последовательность или строку символов (ноль и более символов). Например, если в вашем каталоге расположены файлы:
1test 2test afile1 afile2 bfile1 file file1 file10 file2 file3
и вам нужно указать файлы, имена которых начинаются со слова file, то введите:
file*
Будут выбраны файлы: file file1 file10 file2 file3
Если вы хотите указать файлы, в имени которых содержится слово file, то введите:
*file*
Будут выбраны файлы: afile1 afile2 bfile1 file file1 file10 file2 file3
Символ ? заменяет любой символ. Символ ? Символ ? соответствует любому одному символу.
Если вы хотите сослаться на файлы, имена которых начинаются со слова file, после которого указан любой символ, то введите:
file?
Будут выбраны файлы: file1 file2 file3
Для того чтобы сослаться на файлы, имена которых начинаются со слова file, после которого указано два любых символа, введите:
file??
Метасимволы представляют собой другой тип символов подстановки. В данном случае нужные символы заключаются в скобки [ ]. Действие таких метасимволов аналогично действию символа ?, однако эта конструкция заменяет любой символ, заключенный в скобки. Внутри скобок [ ] можно задать интервал значений с помощью дефиса (-). Конструкция [[:alpha:]] заменяет любой символ алфавита. Конструкция [[:lower:]] заменяет любую прописную букву алфавита.
Если вы хотите сослаться на файлы, имя которых заканчиваются на 1 или 2, введите:
*file[12]
Будут выбраны файлы: afile1 afile2 file1 file2
Если вы хотите сослаться на файлы, имена которых начинаются с цифры, введите:
[0123456789]* или [0-9]*
Будут выбраны файлы: 1test 2test
Если вы хотите сослаться на файлы, имена которых не начинаются с буквы a, введите:
[!a]*
Будут выбраны файлы: 1test 2test bfile1 file file1 file10 file2 file3
Регулярные выражения предназначены для выбора отдельных строк из набора символьных строк. Чаще всего регулярные выражения применяются при обработке текстов.
В виде регулярных выражений можно записать большое число разнообразных строк. Большинство регулярных выражений интерпретируются в зависимости от текущей локали, однако существуют определенные правила записи регулярных выражений, общие для всех локалей.
Ниже приведены примеры сравнения шаблонов и регулярных выражений:
ШаблонРегулярное выражение
* .*
? .
[!a] [^a]
[abc] [abc]
[[:alpha:]] [[:alpha:]]
Полный синтаксис приведен в описании команды awk в книге AIX 5L Version 5.1 Commands Reference.
Глава 4, Перенаправление ввода и вывода
Глава 7, Принтеры,задания и очереди печати
Глава 8, Резервное копирование и носители
Глава 9, Защита системы и файлов