Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Ln -s путь к объекту имя линка

Читайте также:
  1. VII. Фізкультхвилинка
  2. Вращающий» момент рассматривается как внешнее усилие, прикладываемое к объекту
  3. Драматургия М. Метерлинка
  4. Перечень мероприятий по обеспечению доступа инвалидов к объекту

Перейдите в домашний каталог (cd ~) и выполните команду mkdir -p ./object/folder1/folder2/folder3 . Команда mkdir с ключом -p позволяет создать несколько вложенных каталогов. Создайте файл touch ./object/folder1/folder2/folder3/myfile . А теперь создайте символический линк на созданный файл:

ln -s ./object/folder1/folder2/folder3/myfile mylink

Выполните команду ls -l и найдите созданный символический линк - mylink. Вы должны увидеть что-то вроде:

lrwxrwxrwx 1 igor igor 39 2009-10-06 17:24 mylink > ./object/folder1/folder2/folder3/myfile

Символ l (самый первый в первом столбце), говорит о том, что тип файла - link. А также мы можем видеть на какой объект ссылается линк. Число 39 говорит о размере файла mylink. Если вы посчитаете количество символов в пути к объекту, то из будет 39. То есть в нашем файле действительно не содержится ничего кроме ссылки на myfile. Если вы выполните команду cat mylink, то ничего не увидите, так как откроете для просмотра не файл mylink, а файл myfile на который ссылается линк. Чтобы отредактировать файл myfile можно выполнить команду nano ./object/folder1/folder2/folder3/myfile, а можно nano mylink - в результате откроется один и тот же файл. Если удалить файл myfile, то линк никуда не исчезнет, но при попытке выполнить команду cat mylink вы получите сообщение, что файла не существует. Если вы снова создадите в месте куда ссылается линк файл myfile, то снова можно будет получить к нему доступ используя символический линк. Если удалить символический линк указывающий на файл, то с самим файлом ничего не случится - он останется на месте. Создавать линки можно не только на файлы, но и на каталоги. Например:

ln -s ./object/folder1/folder2/folder3/ mydirlink

Выполнив команду cd ./mydirlink/ мы попадем в каталог ./object/folder1/folder2/folder3/.

Теперь несколько особенностей по работе с символическими ссылками. Создавая символические ссылки старайтесь указывать к файлу полный путь (без точки как в примерах выше). Если вы переместите линк в котором будет относительный путь в другую папку, то он перестанет работать. Думаю причины вам понятны. Теперь об операциях перемещения и копирования символический линков. Предлагаю вам самостоятельно рассмотреть особенности работы команд cp и mv с символическими линками. Попробуйте покопировать и поперемещеать линки на файлы и каталоги и посмотреть на результаты.

Чтобы понять, что такое жесткие линки, нужно немного понимать как устроена файловая система. Попробую объяснить максимально просто и наглядно, а вы уже самостоятельно при желании сможете изучить детали. Пространство жесткого диска в файловой системе логически разбито на одинаковые блоки, которые называют кластерами. Файловая система имеет скрытую таблицу в которой содержится информация об объектах файловой системы (см. рис. 1).

Рисунок 1

Информация в таблице содержится самая разнообразная, но нас будут интересовать два поля: имя объекта и inode. В данном контексте будем считать, что inode - это число которое однозначно идентифицирует файл в пространстве файловой системы (в том числе и расположение). Допустим у нас есть файл с именем file1. Ему соответствует inode1, который указывает где расположен файл на диске. Создайте у себя файл с именем file1. А теперь создадим жесткие линки на этот файл (в том же каталоге) с именами file4 и file5 и один символический линк с именем link1:

ln file1 file4; ln file1 file5; ln -s file1 link1

Теперь выполните команду ls -li, которая покажет вам имена файлов и их inode (первый столбец).

1 2 3 4 370923 -rw-r--r-- 3 igor igor 27 2009-10-08 12:28 file1 370923 -rw-r--r-- 3 igor igor 27 2009-10-08 12:28 file4 370923 -rw-r--r-- 3 igor igor 27 2009-10-08 12:28 file5 293812 lrwxrwxrwx 1 igor igor 5 2009-10-08 13:02 link1 > file1

Смотрим на результат и видим, что у наших жестких ссылок file4 и file5, inode совпадает с inode файла file1. То есть получается, что file1, file4 и file5 - это физически один и тот же файл, но с разными именами, которые являются абсолютно равнозначными. На жестком диске они занимают одно и то же место (см. рисунок 1). Если вы выполните команду rm file1, то произойдет следующее: в таблице (см. рисунок 1) исчезнет запись относящаяся к file1. Но на диске данные на которые указывал inode file1 останутся, и мы сможем получить к ним доступ по именам file4 или file5. Цифра 3 в третьем столбце результатов команды ls -li указывает на то что для указанного inode существует три имени. Удалите file1 и убедитесь, что число уменьшилось на один и теперь равно 2.

В этих же результатах вы можете видеть, что link1 - это файл который занимает отдельное физическое место на диске и у него есть свой inode.

Анализируя вышесказанное, мы можем прийти к следующим заключениям:

Жесткие линки не могут указывать на несуществующий объект. Символические линки - могут.

Жесткие линки работают только в рамках одного логического раздела. Вы не сможете сделать жесткий линк на другой раздел вашего диска, так как там своя таблица со своими inode. Символические линки могут ссылаться на другие разделы и файловые системы.

 


Дата добавления: 2014-12-19; просмотров: 13 | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2021 год. (0.019 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав