Обычные файлы и каталоги
Типы файлов
С точки зрения UNIX-подобных ОС, файл представляет собой поток или последовательность байтов. Такой подход позволяет распространить понятие файла на множество ресурсов не только локального компьютера, но и удаленного, связанного с локальным сетью любого рода. Доступ к любому такому ресурсу осуществляется через универсальный интерфейс, благодаря чему запись данных в файл, отправка их на физическое устройство или обмен ими с другой работающей программой происходит аналогично. Это очень упрощает организацию данных и обмен ими.
В ОС Linux можно выделить следующие типы файлов:
* обычные файлы — последовательность байтов (текстовые документы,
исполняемые программы, библиотеки и т.п.); * каталоги — именованные наборы ссылок на другие файлы; * файлы физических устройств, подразделяющихся на:
• файлы блочных устройств, драйверы которых буферизуют ввод-вывод с помощью ядра и
• файлы байт-ориентированных, или символьных, устройств, позволяющих связанным с ними драйверам выполнять буферизацию собственными средствами; * символические ссылки (syrnlink, symbolic link); * именованные каналы (named pipes); • гнезда (sockets).
Свойства (атрибуты) файлов и каталогов можно вывести на терминал с помощью команды Is с ключом -1:
$ls -I /home/den/README -rwxr-xr-- I den users 0 Feb 14 19:08 /home/den/README
Что это за свойства?
Первый символ выведенной строки, в данном случае дефис, обозначает тип файла. Другие значения этого свойства: d — каталог, b — блочное устройство, с — символьное устройство, 1 — символическая ссылка, р — именованный канал и s — гнездо.
Следующие 9 символов означают права доступа к файлу. Они делятся на три тройки, обозначающие права: владельца, членов его группы и всех остальных. Внутри каждой тройки может присутствовать или отсутствовать: право чтения (г), записи (w) и исполнения (х, от execute). Отсутствие права обозначается символом дефиса. С файлом README из нашего примера владелец (в общем случае, пользователь, создавший его) имеет право делать все, что угодно; члены его группы — только читать и запускать файл на выполнение; все остальные — только читать.
О следующем свойстве, количестве ссылок на файл, будет сказано в параграфе о символических ссылках.
Далее указаны имя владельца файла и имя его группы; размер файла в байтах; дата и время последней модификации и имя файла.
Для каталога вывод команды \s выглядит так же, но значение некоторых свойств отличается.
$ls -I -a /home/den
drwx------ 3 den users 4096Feb 14 19:02 . drwxr-xr-x 4 root root 4096Feb 02 11:32..[...]
Ключ -а нужен, чтобы увидеть псевдоподкаталоги «.» и «..» (их имена начинаются с точки, поэтому эти файлы скрыты).
Бит чтения в правах доступа означает право просматривать содержание каталога, записи — право создавать и удалять файлы в каталоге, исполнения — право переходить в этот каталог (делать его своим текущим каталогом).