Типы файлов
Если дать команду ls -l, то тип файла будет указан первым символом первого столбца вывода:
ls -l /etc lrwxrwxrwx 1 root root 14 Янв 22 14:59 aliases -> ./mail/aliases drwxr-xr-x 2 root bin 512 Янв 22 15:53 apache ... -rw-r--r-- 1 root root 12 Янв 23 08:35 defaultrouter -r--r--r-- 1 root root 1825 Янв 22 15:42 device.tab -rw-r--r-- 1 root sys 2467 Янв 22 15:02 devlink.tab drwxr-xr-x 2 root sys 512 Янв 22 14:54 dfs prw------- 1 root root 0 Мар 16 15:50 initpipe -rw-r--r-- 1 root sys 1087 Янв 23 08:33 inittab
Вывод команды ls для каталога /etc в этом примере сильно обрезан, на самом деле там несравнимо больше файлов. Нас интересуют различные типы файлов, которые мы здесь встретим.
В системах UNIX файлы могут быть обычными (этому типу соответствует обозначение -), а также представлять собой каталог (d), файл символьного (c) или блочного (b) устройства, символьную ссылку на другой файл (l), программный канал (p). В Solaris есть еще специальный тип door (дверь), ассоциированный с набором потоков в системе и требуемый для программирования взаимодействия потоков.
Обычный файл может содержать текст или двоичные данные - система не делает никаких предположений о содержимом файла в зависимости от его имени, в отличие от Windows-систем. Возможность запустить файл определяется исключительно правами доступа к файлу. Если вы попытаетесь запустить двоичный файл, система будет искать в нем корректный заголовок исполняемого кода. Если этот файл на самом деле не является программой UNIX, система просто сообщит об ошибке. При попытке выполнить текстовый файл он будет рассматриваться как скрипт командного процессора (если иное не указано в первой строке файла, где можно указать иной интерпретатор). Если файл не является скриптом, командный процессор завалит вас сообщениями об ошибках. Он будет выдавать не меньше одного ругательного сообщения на каждую строку. Не пытайтесь запускать то, что не должно запускаться!
Каталог представляет собой файл специального формата, содержащий имена файлов, которые лежат в этом каталоге, и номера их индексных дескрипторов. Подробнее об индексных дескрипторах рассказано в разделе "Индексные дескрипторы".
Файлы символьных или блочных устройств - это файлы, которые располагаются в каталоге /dev или связанном с ним (см. лекцию 5). Обмен данными с символьным устройством (например, с терминалом) идет посимвольно, с блочным (например, с диском) - поблочно.
О символических1) ссылках будет рассказано ниже в разделе "Ссылки"; это - файлы специального типа, аналог ярлыка в Windows.
Программный канал - это файл, образующийся в некоторых случаях при организации каналов связи между процессами. От администратора обычно не требуется никаких действий в отношении файлов типа p.
В каталоге /etc мы видим обычные файлы, символические ссылки, каталоги и даже один программный канал. Файлы этих типов (за исключением файлов каналов) и составляют большинство в системе.
Таким образом, в Solaris используются следующие типы файлов:
d каталог (directory);
D дверь (door);
l символическая ссылка (symbolic link);
b файл блочного устройства (block);
с файл символического устройства, устройства прямого доступа (character);
p специальный файл программного канала (FIFO, named pipe);
s сокет;
- обычный файл.