В Linux файловая система хранит около сорока информационных полей. Но все они нам не интересны, так как в основном используются самой файловой системой. А вот то что стоит отдельного рассмотрения, так это то, что мы можем увидеть в полном выводе команды ls. Давайте рассмотрим все детальнее, на следующем примере
$ls -l 1.tmp
-rw-r--r-- 1 user group 9 Jun 22 19:42 1.tmp
Итак пойдем по порядку. Первый символ обозначает тип файла, дефис нам сообщает о том, что перед нами обычный файл. Следующие девять символов - это набор битов режима. Его можно разделить на три группы
u(users)-разрешения для создателя файла. g(group)-разрешение для группы пользователей. o(other) - другие пользователи, не подходящие ни под одну категорию. В выводе команды ls биты режима представляются буквами r,w,x - чтение, запись, выполнение. В примере выше, владелец файла может просматривать и изменять файл, группа пользователей только просматривать, все остальные тоже только просматривать.
Следующее поле отображает количество жестких ссылок на файл. В данном случае эта цифра 1 означает, что у файла имеется только одно имя. При создании жесткой ссылки на этот файл счетчик увеличится на еденицу
$ln 1.tmp 2.tmp
$ls -l
-rw-r--r-- 2 user group 9 Jun 22 19:42 1.tmp
-rw-r--r-- 2 user group 9 Jun 22 19:42 2.tmp
В примере выше, мы создали новую ссылку на файл и после этого проверили, что получилось. Как можно видеть, количество ссылок на файл увеличилось на один. Символические ссылки не учитываются.
Кстати, у каталога жестких ссылок всегда как минимум две. Одна ведет из родительского каталога, а вторая это "." внутри самого каталога.
Следующие два поля определяют владельца и группу файла. Здесь файл принадлежит владельцу user и группе group. На самом деле ядро хранит эти данные не в строковом виде, а в виде цифровых идентификаторов. Обычно цифровые идентификаторы сопоставляются с символьными в файлах /etc/passwd - для пользователей и /etc/group - для групп. А так же при использовании базы данных LDAP, если она используется.
Далее следует размер файла в байтах. В примере размер файла 9 байт. Если файлы имеют большой размер, то целесообразно использовать параметр -h, в этом случае размер файлов будет отображаться в удобной для восприятия форме ( 12K, 54M, 100G и т.д.).
После размера идет дата и время последней модификации файла: 22 июня 19:42. Ну и в конце, непосредственно имя рассматриваемого файла.
Для файла устройства команда ls выдает немного другую информацию
$ls -l /dev/tty0
crw--w---- 1 root tty 4, 0 Apr 20 08:10 /dev/tty0
В целом, большинство полей осталось теми же, но вместо размера в байтах показаны младший и старший номер устройства. В данном случае имя /dev/tty0 относится к первой виртуальной консоли, управляемой драйвером устройства 4 (драйвером терминала).
Кстати при поиске жестких ссылок можно руководствоваться еще параметром i
$ls -li
1009627 -rw-r--r-- 2 dmitry.borovik-3 domain users 9 Jun 22 19:42 1.tmp
1009627 -rw-r--r-- 2 dmitry.borovik-3 domain users 9 Jun 22 19:42 2.tmp
В выводе можете увидеть в самом первом поле индексный дескриптор файла. Здесь он одинаковый, так как в данном случае это один и тот же файл с разными именами.
Заключение
Ну вот и познакомились с атрибутами файлов. А вернее с самыми главными и полезными из них. А вот как изменить эти атрибуты, и какие они бывают еще поговорим в следующих статьях. Так что подписывайтесь не стесняйтесь. А так же не забываем оставлять комментарии о чем и о каких средствах работы, Вы хотели бы узнать.