Символические ссылки linux это

Содержание
  1. DATAENGINER
  2. Как создать символическую ссылку в Linux
  3. Что нужно помнить о символических ссылках
  4. Изменения, внесенные в ссылку, отражаются в исходном файле.
  5. Это ссылка на файл или каталог? Вы можете не знать!
  6. Вы можете создавать ссылки на несуществующий файл или каталог
  7. Символические ссылки создаются с разрешения 777, но это ничего не значит
  8. Вы можете сослаться на ссылку ссылки или символическую ссылку
  9. Жесткие и Символьные ссылки в Linux
  10. Жесткая ссылка (Hard link)
  11. Символьная ссылка (Symbolic link)
  12. Жесткие ссылки vs. Символьные ссылки
  13. Удаление ссылок
  14. Заключение
  15. ИТ База знаний
  16. Полезно
  17. Навигация
  18. Серверные решения
  19. Телефония
  20. Корпоративные сети
  21. Команда Ln: как создавать символические ссылки в Linux
  22. Команда Ln для создания символических ссылок
  23. Создать символическую ссылку на каталог Linux
  24. Принудительно перезаписать символические ссылки
  25. Удаление ссылок
  26. Soft Links против Hard Links
  27. Символические ссылки (Soft Links)
  28. Жесткие ссылки (Hard Links)

DATAENGINER

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

Если вы пытаетесь получить доступ к символической ссылке, вы фактически получаете доступ к целевому файлу, на который указывает символическая ссылка. Изменения, выполненные для содержимого файла ссылки, изменяют содержимое фактического целевого файла.

Если вы используете команду ls с опцией -l , вот как выглядит символическая ссылка:

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

Soft Link отображается другим цветом

Символические ссылки предлагают удобный способ организации и обмена файлами. Они обеспечивают быстрый доступ к длинным и запутанным путям каталогов. Они активно используются при компоновке библиотек в Linux.

Теперь, когда вы немного знаете о символических ссылках, давайте посмотрим, как их создавать.

Как создать символическую ссылку в Linux

Чтобы создать символическую ссылку на целевой файл из имени ссылки , вы можете использовать команду ln с опцией -s, например:

Опция -s здесь важна. Определяет, что ссылка является мягкой ссылкой. Если вы не используете его, он создаст жесткую ссылку . Я объясню разницу между мягкими ссылками и жесткими ссылками в другой статье.

Что нужно помнить о символических ссылках

Символические ссылки иногда могут сбивать с толку, поэтому следует помнить о нескольких вещах.

Изменения, внесенные в ссылку, отражаются в исходном файле.

В этом и заключается вся цель ссылок. Вы получаете доступ к целевому файлу, перейдя по ссылке. Вы можете внести изменения в целевой файл по ссылкам. Давайте посмотрим на примере.

У меня есть файл prog.py в newdir / test_dir. Имеет следующие атрибуты:

Теперь я создам мягкую ссылку на этот файл в моем текущем каталоге:

Вот атрибуты вновь созданной ссылки:

Заметьте l (это L, а не один) в начале строки? Если вы знакомы с правами доступа к файлам в Linux , вы должны знать, что «l» означает ссылку и, следовательно, говорит, что этот файл на самом деле является ссылкой. Давайте обновим вашу память, — означает файл, а d означает каталог.

Теперь, если я использую эту ссылку для изменения содержимого или атрибутов, то же самое будет отражено в целевом файле. Например, я использую сенсорную команду в программной ссылке, и вы заметите, что она изменяет временную метку целевого файла.

Это ссылка на файл или каталог? Вы можете не знать!

Как бы вы узнали, указывает ли ссылка на файл или каталог? Вы не сможете узнать, пока не пойдете по пути и не получите доступ к самому целевому файлу.

Вы можете создавать ссылки на несуществующий файл или каталог

Да, это вполне возможно. Вот почему вы должны быть осторожны при создании программных ссылок в Linux. Целевой файл, на который вы ссылаетесь, не должен существовать. Вы не получите никакой ошибки или предупреждения при создании ссылки на несуществующий файл/каталог.

Читайте также:  Windows 10 autocad electrical

Вы получите ошибку только при попытке получить доступ к целевому файлу, либо по ссылке, либо самостоятельно. Команда ls все равно будет работать.

Символические ссылки создаются с разрешения 777, но это ничего не значит

Заметили ли вы разрешение файла на символическую ссылку? Символические ссылки всегда создаются с разрешением 777 (rwxrwxrwx). Для обычного файла это будет означать, что любой может получить доступ к файлу. Но это не относится к ссылкам.

Если права доступа к файлам для ссылок обрабатываются как есть, любой пользователь может создать символическую ссылку на безопасный файл и получить к нему свободный доступ. Это было бы серьезной проблемой безопасности. К счастью, этого не происходит. Поскольку разрешение на целевые файлы имеет значение, а не разрешение на ссылки.

Вы можете использовать команду chmod, чтобы изменить разрешение для ссылки, но это изменит разрешение связанного файла, а не самой ссылки.

Вы можете сослаться на ссылку ссылки или символическую ссылку

Вы можете сделать символическую ссылку, которая указывает на другую ссылку и так далее. Это называется символической связью. Лучше избегать их, поскольку это создает больше путаницы.

Ну вот и все. Я полагаю, что теперь вы лучше знакомы с программными ссылками и знаете, как создавать символические ссылки в Linux. Вы можете прочитать о команде symlinks, которая может помочь вам найти сломанные символические ссылки в Linux и легко управлять ими.

Источник

Жесткие и Символьные ссылки в Linux

Обновл. 14 Май 2021 |

Ссылка в Unix-подобных системах — это своего рода указатель, напоминающий указатели в языках программирования, с той лишь разницей, что он указывает на файл или каталог. Ссылки позволяют нескольким именам файлов ссылаться на один и тот же файл, расположенный где-то в другом месте. В Linux-системах существуют два разных типа ссылок: символьная (или «мягкая», «символическая») ссылка и жесткая ссылка. На этом уроке мы разберем, чем символьная ссылка отличается от жесткой, и как с ними работать.

Предположим, вы захотели скопировать файл. В процессе копирования будет создан новый файл. Его непосредственные данные запишутся в свободное место на диске, а самому файлу система назначит уникальный идентификатор — индексный номер (сокр. «inode» от англ. «index node«).

Создавая жесткую ссылку (англ. «hard link») на файл, мы привязываемся к его индексному номеру, получая тот же самый файл (с новым именем), на который указывает ссылка, но без физического создании копии.

Для создания жесткой ссылки используется команда ln (от англ. «lin), имеющая довольно простой синтаксис:

$ ln целевой_файл имя_ссылки

Для примера создадим ссылку с именем hardlink1, указывающую на уже существующий файл file1:

$ ln file1 hardlink1

Чтобы убедиться, что файл file1 и ссылка hardlink1, по сути, являются одним и тем же объектом файловой системы — сравним их индексные номера, выполнив команду ls вместе с опциями -l (отображать расширенную информацию), -i (выводить inode) и -h (использовать буквы для обозначения размера):

Как можно заметить, file1 и hardlink1 имеют общий индексный номер — 131094 . Теперь давайте создадим еще одну ссылку и посмотрим, как поведет себя счетчик ссылок (число, следующее за группой установленных разрешений файла):

$ ln file1 hardlink2
$ ls –lih

Обратите внимание, теперь счетчик ссылок показывает цифру 3 вместо 2.

Символьная ссылка (сокр. «symlink» от англ «symbolic link«), в отличие от жесткой ссылки, указывает не на индексный номер файла, а на его имя (путь). В каком-то роде символьная ссылка является аналогом ярлыка в Windows-системах.

Читайте также:  Linux строки с конца файла

Символьную ссылку можно создать с помощью той же команды ln , добавив к ней опцию -s :

$ ln -s file1 symlink1

При этом будет создан новый (!) объект файловой системы с именем symlink1, указывающий на существующий файл file1:

Буква l в группе прав доступа к файлу сигнализирует нам о том, что этот файл является символьной ссылкой на другой файл, что также отражено в имени файла — symlink1 -> file1 .

Сравним индексные номера file1, hardlink1, hardlink2 и symlink1:

Видно, что индексный номер symlink1 отличается от других номеров, так как для файловой системы это уже два независимых объекта. Также заметно и различие в наборе прав.

Жесткие ссылки vs. Символьные ссылки

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

Жесткие ссылки:

не могут пересекать границы файловой системы (т.е. жесткая ссылка работает только в пределах своей файловой системы);

нельзя использовать с директориями;

имеют inode и разрешения исходного файла;

разрешения будут обновляться при изменении разрешения исходного файла;

связаны с содержимым исходного файла. Если вы создадите жесткую ссылку на файл и измените содержимое файла (или ссылки), то изменения будут присутствовать в обоих объектах;

с помощью жесткой ссылки вы можете просматривать содержимое файла, даже если исходный файл перемещен или удален.

Символьные ссылки:

могут пересекать границы файловой системы;

можно использовать с директориями;

имеют свои собственные (отдельные) inode и права доступа;

разрешения не будут обновляться;

связаны только с именем (путем) исходного файла, а не с его содержимым; удаление символьной ссылки не приводит к удалению файла;

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

Удаление ссылок

Если вы удалите жесткую ссылку, то связанный с ней файл будет существовать, пока существует хотя бы одна жесткая ссылка на него. Если вы удалите исходный файл, но при этом в другом месте сохранится жесткая ссылка на него, то «сменится» каталог размещения файла. В качестве примера добавим в наш file1 строку «Welcome to Ravesli.com» , удалим файл, а затем попробуем обратиться к жесткой ссылке hardlink2:

Обратите внимание, несмотря на то, что исходного файла больше нет, мы все еще можем получить доступ к его содержимому, используя жесткую ссылку.

При удалении файла, на который указывает символьная ссылка, сама ссылка просто станет нерабочей. Например, удалим файл file1, на который у нас есть символьная ссылка symlink1:

Символьная ссылка превратилась в «висячую» ссылку, указывая на несуществующий файл. Если попытаться к ней обратиться, то система выдаст нам сообщение об ошибке:

$ file file1
file1: cannot open `file1′ (No such file or directory)
diego@debian:

$ file symlink1
symlink1: broken symbolic link to file1
diego@debian:

Заключение

Ссылки являются неотъемлемой частью Linux-систем и часто помогают в навигации и изучении файловой системы. Если у вас остались какие-то вопросы, то не стесняйтесь задавать их в комментариях.

Поделиться в социальных сетях:

Изучаем процессы в Linux. Управление процессами

Источник

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Читайте также:  Starmenudiag cab windows 10

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Команда Ln: как создавать символические ссылки в Linux

Жесткие и мягкие ссылки

4 минуты чтения

Символические ссылки используются в Linux для управления файлами и их сопоставления.

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

В этом руководстве вы узнаете, как использовать команду ln для создания символических ссылок в Linux.

Команда Ln для создания символических ссылок

Чтобы использовать команду ln, откройте окно терминала и введите команду в следующем формате:

  • По умолчанию команда ln создает hard link (жесткая ссылка).
  • Используйте параметр -s , чтобы создать символическую ссылку, она же soft link.
  • Параметр -f заставит команду перезаписать уже существующий файл.
  • Source — это файл или каталог, на который делается ссылка.
  • Destination — это место для сохранения ссылки — если это поле не заполнено, символическая ссылка сохраняется в текущем рабочем каталоге.

Например, создайте символическую ссылку с помощью:

Это создает символическую ссылку link file.text , которая указывает на testfile.txt .

Чтобы проверить, создана ли символическая ссылка, используйте команду ls :

Создать символическую ссылку на каталог Linux

Символическая ссылка может относиться к каталогу. Чтобы создать символическую ссылку на каталог в Linux:

В этом примере создается символическая ссылка с именем stock_photos в домашнем каталоге

/ . Ссылка относится к каталогу stock_photos на внешнем диске external_drive .

Примечание. Если система подключена к другому компьютеру, например к корпоративной сети или удаленному серверу, символические ссылки могут быть связаны с ресурсами в этих удаленных системах.

Принудительно перезаписать символические ссылки

Вы можете получить сообщение об ошибке, как показано на изображении ниже:

Сообщение об ошибке означает, что в месте назначения уже есть файл с именем link_file.txt . Используйте параметр -f , чтобы система перезаписывала целевую ссылку:

Примечание. Использование опции -f навсегда удалит существующий файл.

Удаление ссылок

Если исходный файл будет перемещен, удален или станет недоступным (например, сервер отключится), ссылку нельзя будет использовать. Чтобы удалить символическую ссылку, используйте команду rm (remove) или unlink :

Команду ln можно использовать для создания двух разных типов ссылок:

  • Hard Links (жесткие ссылки)
  • Soft Links (символические или мягкие ссылки)

Символическая ссылка, иногда называемая мягкой ссылкой или soft link, указывает на расположение или путь к исходному файлу. Она работает как гиперссылка в Интернете.

Вот несколько важных аспектов символической ссылки:

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

Когда файл хранится на жестком диске, происходит несколько вещей:

  • Данные физически записываются на диск.
  • Создается справочный файл, называемый индексом, который указывает на расположение данных.
  • Имя файла создается для ссылки на данные inode.

Жесткая ссылка работает путем создания другого имени файла, которое ссылается на данные inode исходного файла. На практике это похоже на создание копии файла.

Вот несколько важных аспектов жестких ссылок:

  • Если исходный файл удален, к данным файла все равно можно будет получить доступ через другие жесткие ссылки.
  • Если исходный файл перемещен, жесткие ссылки по-прежнему работают.
  • Жесткая ссылка может относиться только к файлу в той же файловой системе.
  • Если количество жестких ссылок равно нулю, индексный дескриптор и данные файла удаляются безвозвратно.

Мини — курс по виртуализации

Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена

Источник

Оцените статью