Меню Закрыть

Создание символической ссылки linux

Содержание

Главное меню » Операционная система Linux » Как создать символические ссылки в Linux с помощью команды ln

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

Типы ссылок

В системах Linux/UNIX существует два типа ссылок:

  • Жесткие ссылки. Вы можете считать жесткую ссылку в качестве дополнительного имени для существующего файла. Жесткие ссылки связывают два или более имени файла с тем же inode. Вы можете создать одну или несколько жестких ссылок для одного файла. Жесткие ссылки не могут быть созданы для каталогов и файлов в другой файловой системе или разделе.
  • Мягкие ссылки. Soft link – это что-то вроде ярлыка в Windows. Это косвенный указатель на файл или каталог. В отличие от жесткой ссылки, символическая ссылка может указывать на файл или каталог на другой файловой системе или разделе.

Команда ln

Утилита ln для создания связей между файлами. По умолчанию команда ln создает жесткие ссылки. Для создания символических ссылок используйте параметр -s ( —symbolic ).

Синтаксис команды ln выглядит следующим образом :

Создание символических ссылок

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

Замените имя source_file существующего файла, для которого вы хотите создать символическую ссылку, и с именем symbolic_link символической ссылки.

Параметр symbolic_link является необязательным. Если вы не укажете символическую ссылку, команда ln создаст новую ссылку в вашем текущем каталоге.

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

В следующем примере мы создаем символическую ссылку, названную my_link.txt в файл с именем my_file.txt :

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

Результат будет выглядеть примерно так:

Символ l – это флаг типа файла, представляющий символическую ссылку. Символ -> показывает файл символическая ссылка указывает.

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

Команда создания символической ссылки на каталог такая же, как при создании символической ссылки на файл. Укажите имя каталога как параметр firs и символическую ссылку в качестве второго параметра.

Например, если вы хотите создать символическую ссылку из каталога /mnt/my_drive/movies в каталог

/my_movies , который вы запустили:

Перезапись символов

Если вы попытаетесь создать символическую ссылку, которая уже существует, команда ln выведет сообщение об ошибке.

Чтобы переписать путь назначения символической ссылки, используйте опцию -f ( —force ).

Удаление Symlinks

Вы можете удалить существующую символическую ссылку с помощью команды unlink или rm .

Читайте также:  Как получить бесплатные стикеры капитаны

Синтаксис команды unlink очень прост:

Удаление символической ссылки с помощью команды rm аналогично удалению файла:

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

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

Заключение

К настоящему времени у вас должно быть хорошее представление о том, как использовать команду ln в Linux и как создавать символические ссылки.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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

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

Символические ссылки

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

Вот основные особенности символических ссылок:

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

Теперь давайте рассмотрим жесткие ссылки.

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

Этот тип ссылок реализован на более низком уровне файловой системы. Файл размещен только в определенном месте жесткого диска. Но на это место могут ссылаться несколько ссылок из файловой системы. Каждая из ссылок — это отдельный файл, но ведут они к одному участку жесткого диска. Файл можно перемещать между каталогами, и все ссылки останутся рабочими, поскольку для них неважно имя. Рассмотрим особенности:

  • Работают только в пределах одной файловой системы;
  • Нельзя ссылаться на каталоги;
  • Имеют ту же информацию inode и набор разрешений что и у исходного файла;
  • Разрешения на ссылку изменяться при изменении разрешений файла;
  • Можно перемещать и переименовывать и даже удалять файл без вреда ссылке.
Читайте также:  Что значит метро 2033

Использование ссылок в Linux

Теоретические отличия вы знаете, но осталось закрепить все это на практике, поэтому давайте приведем несколько примеров работы со ссылками в Linux. Для создания символических ссылок существует утилита ln. Ее синтаксис очень прост:

$ ln опции файл_источник файл_ссылки

Рассмотрим опции утилиты:

  • -d — разрешить создавать жесткие ссылки для директорий суперпользователю;
  • -f — удалять существующие ссылки;
  • -i — спрашивать нужно ли удалять существующие ссылки;
  • -P — создать жесткую ссылку;
  • -r — создать символическую ссылку с относительным путем к файлу;
  • -s — создать символическую ссылку.

Создание символических ссылок

Сначала создайте папку test и перейдите в нее:

mkdir test && cd test

Затем создайте файл с именем source с каким-либо текстом:

echo "текст текст текст текст" > source
$ cat source

Файл готов, дальше создадим символическую ссылку Linux, для этого используется команда ln с опцией -s:

ln -s source softlink

Попробуем посмотреть содержимое файла по ссылке:

Как видите, нет никакой разницы между ней и исходным файлом. Но утилита ls покажет что это действительно ссылка:

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

Теперь удалите исходный файл и посмотрите что будет:

Вы получите ошибку, что такого файла не существует, потому что мы действительно удалили исходный файл. Если вы удалите ссылку, то исходный файл останется на месте.

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

Снова создайте файл source с произвольным текстом:

echo "текст текст текст текст" > source
$ cat source

Теперь создадим жесткую ссылку Linux. Для этого достаточно вызвать утилиту без параметров:

ln source hardlink

Посмотрите содержимое файла:

Данные те же самые, а если мы посмотрим вывод утилиты ls, то увидим что inode и права доступа тоже совпадают:

Читайте также:  Как выключить вибрацию при наборе

Если для одного из файлов поменять разрешения, то они изменяться и у другого. Теперь удалите исходный файл:

Затем посмотрите содержимое:

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

Выводы

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

На завершение видео про ссылки в Linux:

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

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

Команда ln — это стандартная утилита в Linux для создания ссылок.

Дельный Совет: Создаете симлинк к примонтированной NFS шаре? Уже задумывались о производительности? Проверьте скорость ЧТЕНИЯ/ЗАПИСИ на удаленной шаре из командной строки в Linux! Читать далее →

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

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

Легко запомнить: В целом, синтаксис команды ln такой же, как и команд cp или mv , в частности .

Используйте следующий синтаксис для создания символической ссылки в Linux:

Тем не менее, вы должны знать, что в соответствии с документацией в man , по умолчанию, каждая точка назначения (
) не должна заранее существовать.

Если путь к существует и это файл, вы получите ошибку «ln: failed to create symbolic link ‘ ’: File exists».

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

Создать Ссылку на Файл

Создать симлинк к файлу:

Создать Ссылку на Директорию

Чтобы создать симлинк к папке, используйте точно такой же синтаксис, как и для создания симлинка к файлу.

Дельный Совет: Добавили новый диск в /etc/fstab ? Перезагрузка не нужна! Примонтируйте его всего лишь одной командной! Читать далее →

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.