Создание ссылок в Linux

Методическая разработка урока по информатике
Цикл уроков по информатике: Работа в режиме командной строки Linux
Уровень: Linux для начинающих

В командной оболочке Linux для того, чтобы добавить файлу еще одно имя (создать еще одну жесткую ссылку на файл) необходимо выполнить команду ln (от "link" - ссылка, связывать). В качестве первого параметра указывается существующее имя файла, второго - имя новой ссылки.

ln file1 file2

В данном случае, в текущем каталоге была создана еще одна жесткая ссылка на файл с именем file1. Созданная ссылка находится в том же каталоге, что и первая. Далее можно переместить ссылку в другой каталог при помощи команды mv.

Можно сразу указать место назначения ссылки с помощью адреса. Например:

ln list ./Desktop/l_class

ln /root/list /home/vasy/Desktop/l_class

В последнем варианте указаны полные имена исходного и нового имен файла.

Число жестких ссылок на файл (т. е. разных имен файла) можно узнать, выполнив команду ls с параметром -l, которая построчно выводит на экран подробные сведения о каждом объекте каталога.

Создание жесткой ссылки на файл

В данном примере создаются две ссылки на файд cp_mv_7.odt: одна ссылка помещается в папку Documents, а вторая на рабочий стол. Далее выполняется команда ls по отношению к этим двум каталогам. Сразу за перечислением прав доступа (-rwxrwxrwx) к файлу следует число, которое и обозначает количество жестких ссылок на файл. В данном случае их три (не забывайте про ту, что была исходной). То, что все ссылки указывают на один и тот же файл, говорит идентичность информации о файле.

Символьную ссылку можно создать при помощи команды ln с ключом -s (от "symbolic"). В качестве первого параметра пишется АБСОЛЮТНЫЙ АДРЕС и имя исходного файла, в качестве второго – адрес и имя мягкой ссылки. Например:

Создание символьной ссылки на файл

В примере создана символьная ссылка на файл text, находящийся в каталоге Documents. Ссылка размещена на рабочем столе. При просмотре содержимого каталога Desktop, мы можем видеть, что файл link_text является символьной ссылкой на объект находящийся по адресу /home/sveta/Documents/text.

В отличие от жестких ссылок, символьные ссылки можно создавать и на каталоги. В принципе, в этом и можно усмотреть их главное практическое назначение. В примере ниже создается ссылка на каталог, находящийся на другом разделе жесткого диска. После этого доступ к нему можно осуществлять непосредственно с рабочего стола (что намного удобнее).

Создание ссылки на каталог

Практическая работа

  1. Создайте файл с текстовыми данными, путем перенаправления результата команды cat в файл (cat > myfile).
  2. Далее скопируйте файл, создайте на него жесткую и символьную ссылки. Все объекты оставьте в том же каталоге, что и файл-оригинал.
  3. Выполните команду ls -l, затем сделайте выводы о том, какие имена указывают на один и тот же объект, а какие на разные.
  4. Создайте символьную ссылку на рабочем столе на любой глубоко вложенный каталог файловой структуры.

Вопросы

  1. В чем заключаются различия между жесткой и мягкой ссылками?
  2. Сколько имен может быть у файла?
  3. Есть ли разница между созданием дополнительной ссылки на файл и его копированием? Если "да", то в чем она заключается?

Выводы

  • Вся существенная информация о файле привязана к его индексному дескриптору, который представляет собой номер.
  • Обратиться к файлу можно по его имени, связанному с индексным дескриптором.
  • Количество имен не ограничено.
  • Файл останется доступен операционной системе до тех пор, пока не будут удалены все его имена.
  • Символьная (мягкая) ссылка – это особый тип файла, ссылающийся на жесткую ссылку.

Спасибо вам за такие

Спасибо вам за такие прекрасные уроки.
Хотелось бы немного добавить к данному уроку некоторую информацию чтобы было более наглядно, а именно - в команде ls есть такой параметр как -i который выводит номер дескриптора файла:
$ls -i

спасибо за уроки

спасибо за уроки