Ярлыки объектов файловой системы

При создании объектов файловой системы – файлов, каталогов и т. п. – каждому приписывается ярлык. Ярлык включает в себя UID – идентификатор пользователя-хозяина файла, GID – идентификатор группы, которой принадлежит файл, тип объекта и набор так называемых атрибутов (код доступа), а также некоторую дополнительную информацию. Атрибуты (или код доступа) определяют, кто и что имеет право делать с файлом, они описаны ниже:

Пример 4. Атрибуты каталогов, показанные командой ls -l

итого 88

drwxr-xr-x 2 root root 4096 Апр 4 2011 bin

drwxr-xr-x 4 root root 4096 Апр 4 2011 boot

drwxr-xr-x 10 root root 3520 Апр 5 14:26 dev

drwxr-xr-x 90 root root 8192 Апр 5 14:22 etc

drwxr-xr-x 3 root root 4096 Апр 4 21:22 home

drwxr-xr-x 11 root root 4096 Апр 4 2011 lib

drwx------ 2 root root 16384 Апр 4 2011 lost+found

drwxr-xr-x 4 root root 4096 Апр 5 14:22 media

drwxr-xr-x 2 root root 4096 Июл 11 2010 misc

drwxr-xr-x 2 root root 4096 Окт 20 2011 mnt

drwxr-xr-x 2 root root 0 Апр 5 14:21 net

drwxr-xr-x 2 root root 4096 Окт 20 2011 opt

dr-xr-xr-x 106 root root 0 Апр 5 2010 proc

drwxr-x--- 31 root root 4096 Апр 5 14:29 root

drwxr-xr-x 2 root root 8192 Апр 4 2010 sbin

drwxr-xr-x 2 root root 4096 Окт 20 2010 selinux

drwxr-xr-x 2 root root 4096 Окт 20 2010 srv

drwxr-xr-x 11 root root 0 Апр 5 2010 sys

drwxrwxrwt 16 root root 4096 Апр 5 14:26 tmp

drwxr-xr-x 15 root root 4096 Апр 4 2010 usr

drwxr-xr-x 21 root root 4096 Апр 4 2010 var

Ключ "-l" утилиты ls определяет длинный (long) формат выдачи (справа налево): имя файла, время последнего изменения файла, размер в байтах, группа, хозяин, количество жестких ссылок и строчка атрибутов. Первый символ в строчке атрибутов определяет тип файла. Тип "-" отвечает "обычному" файлу, а тип "d" – каталогу (directory).

Несмотря на то, что создание жестких ссылок на каталог невозможно, значение поля "количество жестких ссылок" (второй столбец) для всех каталогов примера равно двум, а не одному. На самом деле этого и следовало ожидать, потому что любой каталог файловой системы Linux всегда имеет не менее двух имен: собственное (например, tmp) и имя "." в самом этом каталоге (tmp/.). Если же в каталоге создать подкаталог, количество жестких ссылок на этот каталог увеличится на 1 за счет имени ".." в подкаталоге (например, tmp/subdir1/..):