<< Предыдущий раздел | /\ Содержание | >> Следующий раздел
Файловая система ОС Unix
Файловая система в Unix организована в виде единого дерева
директорий. Никаких букв дисков (a:, c:) здесь нет, а если
используется несколько физических дисков (например, первый жесткий
диск, второй, CD-ROM и т.д.) то они представляются отдельными ветвями
на общем дереве.
Директории разделяются косой чертой "/" (а не обратной, как в Dos),
например, "/home/inpunix/ivanov/" -- поддиректория "ivanov" в
директории "inpunix" директории "home". Самая верхняя директория
("корневая") называется "/".
Какие разрешаются имена:
- Имя файла (и директории) может содержать практически любые символы,
включая пробелы (и даже управляющие символы, типа перевода строки, если
удастся их ввести). Примеры:
list.txt
A file with spaces.txt
Сводный отчет по трудозатратам за 1998й год.tex
Manual [part 1 of 3].txt
- Символ "." не является особенным, и в имени может быть любое их
количество, а может и не быть вовсе. Так, к примеру,
file.with.many.dots
short
file_without_extension
.......
являются вполне нормальными именами.
- У программ не требуется какое-либо специальное расширение, типа
.exe -- достаточно установить атрибут "x" (см. ниже).
- Заглавные и маленькие буквы различаются; так,
report.txt
REPORT.TXT
Report.txt
RePorT.tXt
это четыре разных имени.
- В отличие от Dos/Windows, нет зарезервированных имен, таких, как
con, com1 и т.д. Вместо них есть сответствующие
файлы устройств в директории /dev:
Файл в Dos | Устройство в Unix | Назначение |
con | /dev/tty | Консоль |
nul | /dev/null | Пустота |
com1 | /dev/ttyS0 | Первый последовательный порт |
lpt1 | /dev/lp0 | Первый параллельный порт |
- У программ не требуется какое-либо специальное расширение, типа
.exe -- достаточно установить атрибут "x" (см. ниже).
- Длина имени может быть до 255 символов; полный путь (включая
директории) -- 1024 символа.
Хотя единственный символ, которого не может быть в имени, это "/"
(поскольку это разделитель директорий), лучше не слишком увлекаться, и
стараться не делать имен с пробелами, и не злоупотреблять различием в
регистре букв -- это только внесет лишнюю путаницу. Также лучше не
называть файлы по-русски.
В каждой директории есть поддиректория ".", являющаяся ссылкой
на саму директорию и "..", являющаяся ссылками директорию
уровнем выше.
Файлы, имена которых начинаются c точки (включая . и
..), считаются "неинтересными", и в листинге директории обычно
не показываются.
Атрибуты файла
Для просмотра листинга директории используется команда ls,
и с ключиком "-l" она выдает "детальный" листинг, со всеми
атрибутами файла:
bobby:~% ls -l netscape.ps
-rw-r--r-- 1 ivanov lab5 380609 Jan 15 15:29 netscape.ps
|
Поля в строке имеют следующий смысл:
- Тип файла ("-" -- обычный файл, "d" -- директория,
"l" -- символьный линк) и права доступа, по три символа (r
(Read), w (Write) и x (eXecute)) для пользователя, группы и всех
остальных.
- Число hard-линков к файлу (это сейчас обсуждать не будем).
- Владелец файла (в данном случае -- ivanov) и
группа-владелец (lab5); группа -- это "дополнительный"
владелец, которому устанавливаются отдельные права доступа.
- Размер в байтах.
- Дата и время модификации.
- И, наконец, имя файла -- оно располагается в конце для того, чтобы
листинг нескольких файлов выглядел как таблица (ведь имена могут иметь
разную длину).
Права доступа
- Для файлов
- r
- право читать файл.
- w
- Право модифицировать файл (писать в него).
- x
- Право исполнять файл -- устанавливается у программ.
- Для директорий
- r
- право читать список файлов в директории.
- w
- право модифицировать директорию (создавать и удалять из нее
файлы); требует также наличия X.
- x
- право использовать файлы из директории. Если у директории
установлен только атрибут "x", то воспользоваться файлом
можно, лишь зная заранее его имя, т.к. листинг директории посмотреть
невозможно -- это полезно, например, чтобы home-директория была
недоступна на чтение, а вот к поддиректории public_html мог бы
обратиться любой.
Естественно, наличие атрибута "x" не дает права, к примеру,
читать файл из такой директории, если у него нет атрибута "r".
Что любопытно, возможен режим доступа "rwx---rwx", когда
"все остальные" могут делать с файлом что угодно, а члены группы -- нет
(хотя, казалось бы, они тоже "остальные"), и даже "---rwxrwx",
когда с файлом может что угодно делать любой, кроме владельца. Это
происходит потому, что Unix сначала проверяет, к какой категории
относится персона, запрашивающая доступ к файлу, а потом смотрит
соответствующие права, не обращая внимания на остальные.
<< Предыдущий раздел | /\ Содержание | >> Следующий раздел