Дерево, на котором живут Пингвины
Спецвыпуск Хакера, номер #005, стр. 005-104-1
Андрей Фадеев (mika@farlep.net)
Привет! Сегодня мы поговорим о файловой системе Ext2fs (Extended2 File System), которую использует Linux. Вообще-то, большая часть написанного относится к любой файловой системе (а их много, почти каждая ОС'ка имеет свою). Но я остановлюсь поподробнее на особенностях Ext2.
Что такое файловая система?
Представь себе, что у тебя на столе есть куча бумажек с записями, или еще хуже - одна большая с тучей записей :). Говоришь, чего представлять - вот она кучка, рядом? Дык вот. Твой жесткий диск и есть такая длинная бумажка с записями. Естественно, никто не хотел ползать по всему диску в поисках инфы, ведь чтобы найти что-то, надо было просмотреть все записи :(. И вот в один солнечный день какому-то программеру (эх, нобелевскую премию бы ему, а его имени уже и не сыщешь) залезла в голову мысля, что нехило бы все это дело как-то систематизировать. И придумал он файловую систему. Посмотрел на это и подумал: "Хех, какой я умный!" ;). А на следующий день пил он с друзьями пиво, и с тех пор все люди в этот день отдыхают :). Но я отвлекся. Вот эта FS (File System - файловая система, по-нашему) представляет собой структурное образование... Ну, она на дерево похожа, из корня растет ствол, от него - ветки-директории, от них -
веточки-поддиректории, а уже на них - листья-файлы.
Файлы и директории
Собственно, основа файловой системы - это директории - папки, в которых лежат твои файлы, и сами файлы - ячейки информации. Наверняка в школе, когда из тебя хотели сделать ламера (гы, наивные 8)), тебе говорили, что файлы - это ячейки информации, имеющие разные форматы: текстовый, графический и т.д. Конечно, это так, но, запомни, файловой системе это строго фиолетово, ей файлы - просто блоки ценной инфы. Форматом интересуются уже конечные программы. В Линуксе директории растут так:
/ - это корневой каталог (директория). Все растет из него.
/directory1 - это одна из директорий.
/directory1/sub1 - это поддиректория. Таких подуровней может быть очень много.
/directory1/sub1/file.txt - это уже файл, мельчайшие ячейки информации. Запомни! В одной директории не может быть несколько файлов с одинаковым именем! А то путаница начнется, глюки, и прощай твои данные :). Линукс сам тебя предупредит при создании файла, если в каталоге есть уже файл с таким именем, так что испортить что-нибудь тебе вряд ли удастся. Как ты уже понял, при указании пути к файлу директории и файлы отделяются символом "/". Бывшие пользователи Windows часто путают :0).
Имена файлов и каталогов
Чтобы назвать свой файлик (или директорию) каким-нибудь классным именем, надо помнить следующие правила:
1. Имена файлов могут содержать буквы, цифры, черточки и прочие пробелы, но нельзя юзать специальные символы: "& ! ~ "
2. Если имя файла содержит скобки или пробелы, то при обращении к нему его имя надо брать в двойные кавычки ("file one.png"). Отсюда следует, что одинарные и двойные кавычки в названии файла лучше не использовать.
3. Хоть имя и может содержать до 255 символов, для Линукса имеют значение только первые 64. Так что если имена различаются только последней 255-й буквой, для системы они одинаковые. И, по моему, не очень удобно стучать по клаве название в 255 букв. Разик набрал, и на Mitino-BaZZarr, за новой клавой :).