Приведенная выше информация нужна здесь только для того, чтобы сказать, что имя любого файла в Linux является ни чем иным, как ссылкой на индексный дескриптор файла. Поэтому каждый файл может иметь сколько угодно разных имен. Эти имена называют еще "жесткими" ссылками. Когда вы удаляете файл, имеющий несколько разных имен - жестких ссылок, то фактически удаляется только одна ссылка - та, которую вы указали в команде удаления файла. Даже когда вы удаляете последнюю ссылку, это еще может не означать удаления содержимого файла - если файл еще используется системой или каким-то приложением, то он сохраняется до тех пор, пока он не "освободится".
Для того, чтобы дать файлу (или каталогу) дополнительное имя (создать жесткую ссылку), используется команда ln в следующем формате:
ln имя_существующего_файла новое_имя
Пример:
[user]$ ln /home/howto/font-HOWTO-ru/Font-HOWTO.html ~/fonts.html
(специальный символ ~ здесь и вообще в системе означает домашний каталог пользователя, о котором будет сказано чуть дальше). Теперь можно вместо длинного имени /home/howto/font-HOWTO-ru/Font-HOWTO.html использовать просто ~/fonts.html. Подробнее о команде ln вы можете прочитать на странице интерактивного руководства man.
Число жестких ссылок на файл (т. е. разных имен файла) можно узнать, выполнив команду ls с параметром -l. Сразу за перечислением прав доступа к файлу следует число, которое и обозначает число жестких ссылок на файл:
[user]# ls -l total 9 drwxr-xr-x 2 user users 1024 Jul 1 2000 Autostart
- rw-r-r- 1 user users 230 Sep 14 1999 Printer.kdelnk
- rw-r-r- 1 user users 159 Sep 15 1999 Red Hat
4.2. Каталоги
Если бы файловая структура не позволяла использовать ничего кроме просто имен файлов, даже сколь угодно длинных (т. е. все файлы располагались бы в одном общем списке), то обращаться к ним было бы чрезвычайно трудно. Вообразите себе список из нескольких тысяч файлов! Поэтому файлы группируются в каталоги, которые, в свою очередь, могут быть включены в другие каталоги. В результате получается иерархическая структура каталогов, начинающаяся с корневого каталога. Каждый (под)каталог может содержать как отдельные файлы, так и подкаталоги.
Иерархическую структуру каталогов обычно иллюстрируют рисунком "дерева каталогов", в котором каждый каталог изображается узлом "дерева", а файлы - "листьями". В MS Windows или DOS каталоговая структура строится отдельно для каждого физического носителя (т. е., имеем не отдельное "дерево", а целый "лес") и корневой каталог каждой каталоговой структуры обозначается какой-нибудь буквой латинского алфавита (отсюда уже возникает некоторое ограничение). В Linux (и UNIX вообще) строится единая каталоговая структура для всех носителей, и единственный корневой каталог этой структуры обозначается символом "/". В эту единую каталоговую структуру можно подключить любое число каталогов, физически расположенных на разных носителях (как говорят, "смонтировать файловую систему" или "смонтировать носитель").
Имена каталогов строятся по тем же правилам, что и имена файлов. И, вообще, каталоги в принципе ничем, кроме своей внутренней структуры (до которой ОС уже есть дело) не отличаются от "обычных" файлов, например, текстовых.
Полным именем файла (или путем к файлу) называется список имен вложенных друг в друга подкаталогов, начинающийся с корневого каталога и оканчивающийся собственно именем файла. При этом имена подкаталогов в этом списке разделяются тем же символом "/", который служит для обозначения корневого каталога. Например, на моем компьютере /home/kos/ve/book/filesystem1.htm является полным именем того файла, в котором я сохранил первый вариант данного текста.
В каждый момент времени пользователь работает с одним экземпляром оболочки shell и эта оболочка хранит значение так называемого "текущего" каталога, т. е. того каталога, в котором пользователь сейчас работает. Имеется специальная команда, которая сообщает вам значение текущего каталога - pwd.
Примечание
Если быть более точным, то следует сказать, что текущий каталог - это понятие, относящееся к каждому запущенному в системе процессу (в частности к оболочке); поэтому иногда запуск какой-то программы в shell может привести к тому, что после завершения работы этой программы текущий каталог сменится.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии