Число жестких ссылок на файл (т. е. разных имен файла) можно узнать, выполнив команду 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
Если бы файловая структура не позволяла использовать ничего кроме просто имен файлов, даже сколь угодно длинных (т. е. все файлы располагались бы в одном общем списке), то обращаться к ним было бы чрезвычайно трудно. Вообразите себе список из нескольких тысяч файлов! Поэтому файлы группируются в каталоги, которые, в свою очередь, могут быть включены в другие каталоги. В результате получается иерархическая структура каталогов, начинающаяся с корневого каталога. Каждый (под)каталог может содержать как отдельные файлы, так и подкаталоги.
Иерархическую структуру каталогов обычно иллюстрируют рисунком "дерева каталогов", в котором каждый каталог изображается узлом "дерева", а файлы - "листьями". В MS Windows или DOS каталоговая структура строится отдельно для каждого физического носителя (т. е., имеем не отдельное "дерево", а целый "лес") и корневой каталог каждой каталоговой структуры обозначается какой-нибудь буквой латинского алфавита (отсюда уже возникает некоторое ограничение). В Linux (и UNIX вообще) строится единая каталоговая структура для всех носителей, и единственный корневой каталог этой структуры обозначается символом "/". В эту единую каталоговую структуру можно подключить любое число каталогов, физически расположенных на разных носителях (как говорят, "смонтировать файловую систему" или "смонтировать носитель").
Имена каталогов строятся по тем же правилам, что и имена файлов. И, вообще, каталоги в принципе ничем, кроме своей внутренней структуры (до которой ОС уже есть дело) не отличаются от "обычных" файлов, например, текстовых.
Полным именем файла (или путем к файлу) называется список имен вложенных друг в друга подкаталогов, начинающийся с корневого каталога и оканчивающийся собственно именем файла. При этом имена подкаталогов в этом списке разделяются тем же символом "/", который служит для обозначения корневого каталога. Например, на моем компьютере /home/kos/ve/book/filesystem1.htm является полным именем того файла, в котором я сохранил первый вариант данного текста.
В каждый момент времени пользователь работает с одним экземпляром оболочки shell и эта оболочка хранит значение так называемого "текущего" каталога, т. е. того каталога, в котором пользователь сейчас работает. Имеется специальная команда, которая сообщает вам значение текущего каталога - pwd.
Примечание
Если быть более точным, то следует сказать, что текущий каталог - это понятие, относящееся к каждому запущенному в системе процессу (в частности к оболочке); поэтому иногда запуск какой-то программы в shell может привести к тому, что после завершения работы этой программы текущий каталог сменится.
Кроме текущего каталога для каждого пользователя определен еще его "домашний каталог" - каталог, в котором пользователь имеет все права: может создавать и удалять файлы, менять права доступа к ним и т. д. В каталоговой структуре Linux домашние каталоги пользователей обычно размещаются в каталоге /home и имеют имена, совпадающие с именем пользователя. Например, /home/jim. Каждый пользователь может обратиться к своему домашнему каталогу с помощью значка ~, т. е., например, пользователь jim может обратиться к каталогу /home/jim/doc как к ~/doc. Когда пользователь входит в систему, текущим каталогом становится домашний каталог данного пользователя.
Для изменения текущего каталога служит команда cd. В качестве параметра этой команде надо указать полный или относительный путь к тому каталогу, который вы хотите сделать текущим. Понятие полного пути уже было пояснено, а понятие относительного пути требует дополнительного пояснения. Относительным путем называется перечисление тех каталогов, которые нужно пройти в "дереве каталогов", чтобы перейти от текущего каталога к какому-то другому каталогу (назовем его целевым). Если целевой каталог, т. е. каталог, который вы хотите сделать текущим, расположен ниже текущего в структуре каталогов, то сделать это просто: вы указываете сначала подкаталог текущего каталога, затем подкаталог того каталога и т. д., вплоть до имени целевого каталога. Если же целевой каталог расположен выше в каталоговой структуре, или вообще на другой "ветви" дерева, то ситуация несколько сложнее. Конечно, можно было бы пользоваться полным путем, но тогда придется записывать очень длинные маршруты.
Читать дальше