- Как создавать и удалять симлинки
- Windows
- Синтаксис
- Симлинк на файл
- Симлинк на директорию
- Удалить симлинк
- Разрешить симлинки в Windows
- Linux и FreeBSD
- Создание
- Команда Ln в Linux (создание символических ссылок)
- Типы ссылок
- Как использовать команду ln
- Создание символической ссылки к файлу
- Создание символических ссылок на каталог
- Замена символических ссылок
- Удаление символических ссылок
- Выводы
- Жесткие и Символьные ссылки в Linux
- Жесткая ссылка (Hard link)
- Символьная ссылка (Symbolic link)
- Жесткие ссылки vs. Символьные ссылки
- Удаление ссылок
- Заключение
- Что Такое Символическая Ссылка и Как Создать Симлинк в Linux
- Что Такое Символическая Ссылка?
- Как Создать Символическую Ссылку в Linux
- Символическая Ссылка Linux на Файлы
- Символическая Ссылка Linux на Папки
- Как Изменить или Удалить Символическую Ссылку в Linux?
- Итоги
Как создавать и удалять симлинки
Windows
Работы с символьными ссылками в Windows ведутся из командной строки.
Синтаксис
Симлинк на файл
mklink C:\Users\dmosk\Desktop\cmd.exe C:\Windows\system32\cmd.exe
* в данном примере на рабочем столе пользователя dmosk будет создан симлинк на файл cmd.exe.
Симлинк на директорию
mklink /D «C:\Users\dmosk\Desktop\Сетевая папка» \\dmosk.local\share
* в примере создается симлинк на сетевую папку \\dmosk.local\share
** так как в названии папки есть пробел, путь заключен в кавычки.
Для создания ссылки на папку доступен также ключ /J. Созданная таким образом ссылка будет по некоторым особенностям напоминать жесткую ссылку.
Удалить симлинк
В Windows его можно удалить в проводнике, как обычный файл или папку.
Или использовать командную строку.
Для папки:
rmdir «C:\Users\dmosk\Desktop\Сетевая папка»
Для файла:
Разрешить симлинки в Windows
Если при попытке перейти по символьной ссылке мы получим ошибку «Символическая ссылка не может быть загружена, так как ее тип отключен», открываем командную строку от администратора и вводим команду:
fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
Если это не помогло, пробуем создать симлинк с ключом /J.
Linux и FreeBSD
Создание
В системах на базе Linux (например, Ubuntu или CentOS) и FreeBSD симлинк для каталога и файла создаются одинаково:
Источник
Команда Ln в Linux (создание символических ссылок)
Символическая ссылка, также известная как символическая ссылка или программная ссылка, представляет собой файл особого типа, который указывает на другой файл или каталог.
В этом руководстве мы расскажем, как использовать команду ln для создания символических ссылок.
Типы ссылок
В системах Linux / UNIX есть два типа ссылок:
- Жесткие ссылки . Вы можете рассматривать жесткую ссылку как дополнительное имя для существующего файла. Жесткие ссылки связывают два или более имен файлов с одним и тем же индексом . Вы можете создать одну или несколько жестких ссылок для одного файла. Невозможно создать жесткие ссылки для каталогов и файлов в другой файловой системе или разделе.
- Мягкие ссылки . Программная ссылка — это что-то вроде ярлыка в Windows. Это косвенный указатель на файл или каталог. В отличие от жесткой ссылки, символическая ссылка может указывать на файл или каталог в другой файловой системе или разделе.
Как использовать команду ln
ln — это утилита командной строки для создания ссылок между файлами. По умолчанию команда ln создает жесткие ссылки. Чтобы создать символическую ссылку, используйте параметр -s ( —symbolic ).
Синтаксис команды ln для создания символических ссылок следующий:
- Если заданы и FILE и LINK , ln создаст ссылку из файла, указанного в качестве первого аргумента ( FILE ), на файл, указанный в качестве второго аргумента ( LINK ).
- Если в качестве аргумента указан только один файл или вторым аргументом является точка ( . ), ln создаст ссылку на этот файл в текущем рабочем каталоге . Имя символической ссылки будет таким же, как имя файла, на который она указывает.
По умолчанию в случае успеха ln не производит никакого вывода и возвращает ноль.
Создание символической ссылки к файлу
Чтобы создать символическую ссылку на данный файл, откройте терминал и введите:
Замените source_file именем существующего файла, для которого вы хотите создать символическую ссылку, а symbolic_link — именем символической ссылки.
Параметр symbolic_link необязательный. Если вы не укажете символическую ссылку, команда ln создаст новую ссылку в вашем текущем каталоге:
В следующем примере мы создаем символическую ссылку my_link.txt на файл my_file.txt :
Чтобы убедиться, что символическая ссылка была успешно создана, используйте команду ls :
Результат будет выглядеть примерно так:
Символ l — это флаг типа файла, представляющий символическую ссылку. Символ -> показывает файл, на который указывает символическая ссылка.
Создание символических ссылок на каталог
Команда для создания символической ссылки на каталог такая же, как и при создании символической ссылки на файл. Укажите имя каталога в качестве первого параметра и символическую ссылку в качестве второго параметра.
Например, если вы хотите создать символическую ссылку из /mnt/my_drive/movies каталог
/my_movies вы должны запустить:
Замена символических ссылок
Если вы попытаетесь создать уже существующую символическую ссылку , команда ln выведет сообщение об ошибке.
Чтобы перезаписать путь назначения символической ссылки, используйте параметр -f ( —force ).
Удаление символических ссылок
Чтобы удалить / удалить символические ссылки, используйте команду unlink или rm .
Синтаксис unlink очень прост:
Удаление символической ссылки с помощью команды rm такое же, как и при удалении файла:
Независимо от того , какой команды вы используете, при удалении символической ссылки не добавляет / слэша в конце его названия.
Если вы удалите или переместите исходный файл в другое место, символический файл останется висящим (сломанным), и его следует удалить.
Выводы
Чтобы создать символическую ссылку в Linux, используйте команду ln с параметром -s .
Для получения дополнительной информации о команде ln посетите страницу руководства ln или введите man ln в терминале.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Источник
Жесткие и Символьные ссылки в Linux
Обновл. 14 Май 2021 |
Ссылка в Unix-подобных системах — это своего рода указатель, напоминающий указатели в языках программирования, с той лишь разницей, что он указывает на файл или каталог. Ссылки позволяют нескольким именам файлов ссылаться на один и тот же файл, расположенный где-то в другом месте. В Linux-системах существуют два разных типа ссылок: символьная (или «мягкая», «символическая») ссылка и жесткая ссылка. На этом уроке мы разберем, чем символьная ссылка отличается от жесткой, и как с ними работать.
Жесткая ссылка (Hard link)
Предположим, вы захотели скопировать файл. В процессе копирования будет создан новый файл. Его непосредственные данные запишутся в свободное место на диске, а самому файлу система назначит уникальный идентификатор — индексный номер (сокр. «inode» от англ. «index node«).
Создавая жесткую ссылку (англ. «hard link») на файл, мы привязываемся к его индексному номеру, получая тот же самый файл (с новым именем), на который указывает ссылка, но без физического создании копии.
Для создания жесткой ссылки используется команда ln (от англ. «link»), имеющая довольно простой синтаксис:
$ ln целевой_файл имя_ссылки
Для примера создадим ссылку с именем hardlink1, указывающую на уже существующий файл file1:
$ ln file1 hardlink1
Чтобы убедиться, что файл file1 и ссылка hardlink1, по сути, являются одним и тем же объектом файловой системы — сравним их индексные номера, выполнив команду ls вместе с опциями -l (отображать расширенную информацию), -i (выводить inode) и -h (использовать буквы для обозначения размера):
Как можно заметить, file1 и hardlink1 имеют общий индексный номер — 131094 . Теперь давайте создадим еще одну ссылку и посмотрим, как поведет себя счетчик ссылок (число, следующее за группой установленных разрешений файла):
$ ln file1 hardlink2
$ ls –lih
Обратите внимание, теперь счетчик ссылок показывает цифру 3 вместо 2.
Символьная ссылка (Symbolic link)
Символьная ссылка (сокр. «symlink» от англ «symbolic link«), в отличие от жесткой ссылки, указывает не на индексный номер файла, а на его имя (путь). В каком-то роде символьная ссылка является аналогом ярлыка в Windows-системах.
Символьную ссылку можно создать с помощью той же команды 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. Управление процессами
Источник
Что Такое Символическая Ссылка и Как Создать Симлинк в Linux
Команды Linux, связанные с символическими ссылками, прекрасно дополнят ваш инструментарий для работы в терминале. В этом руководстве мы рассмотрим несколько быстрых и простых команд. Но прежде чем мы начнём, давайте разберёмся, что же такое символическая ссылка.
Что Такое Символическая Ссылка?
Символические ссылки служат не только для создания ярлыков и управления файлами в операционной системе Linux. Они также создают место под основные пользовательские папки, такие как «Документы», «Изображения», «Загрузки» и другие.
Символические ссылки позволяют создавать и хранить несколько файлов в разных местах компьютерной системы, при этом вести к ним будет один файл. Такой принцип работы напоминает ярлыки в Windows. Символическая ссылка повышает общую продуктивность работы, поскольку предоставляет доступ к документам одной командой.
Эти ссылки хранятся в мейнфрейме, поэтому даже если исходный файл будет удалён, у вас останется резервная копия большинства важных файлов. В отличие от жестких ссылок, которые всегда ссылаются на существующий файл, символические ссылки могут содержать ни на что не указывающий путь.
Функции Linux настолько удобны, что даже Microsoft перенял их практику создания символических ссылок. Однако символическая ссылка, также известная как мягкая ссылка, или симлинк, не является уникальным явлением, характерным исключительно Linux. Они напоминают поиск в Windows, когда для того, чтобы найти файл или каталог, пользователь выполняет различные команды.
Как Создать Символическую Ссылку в Linux
Итак, давайте разберёмся, как создать символические ссылки на файлы и папки в Linux.
Символическая Ссылка Linux на Файлы
Обычно для создания ссылок мы используем команду ln и опцию -s, чтобы указать символическую ссылку. Это самый простой и гибкий способ, который позволяет максимально экспериментировать с языком. В создании символических ссылок в Linux нет ничего сложного — нужно просто выполнить один простой шаг.
Команда ln в Linux создает ссылки между исходными файлами и каталогами.
- -s — команда для символических ссылок.
- [целевой файл] — имя существующего файла, для которого вы создаёте ссылку.
- [имя символической ссылки] — эта часть команды объясняет сама себя.
Проверить создалась ли ссылка можно с помощью команды вывода подробного списка содержимого каталога:
Однако, если вы не укажете [имя символической ссылки], команда автоматически создаст новую ссылку в существующем каталоге.
Символическая Ссылка Linux на Папки
Создать символическую ссылку на каталог тоже довольно просто. Синтаксис команды для создания символической ссылки на папку похож на команду для создания ссылки на файл:
Допустим, мы хотим связать каталог /user/local/downloads/logo с каталогом /devisers , вот как будет выглядеть команда:
Созданная и прикреплённая к папке /devisers , символическая ссылка будет вести к /user/local/downloads/logo . Когда пользователь меняет каталог — cd — на /devisers , система автоматически переключается на определённый файл и записывает его в каталог команды.
Опции символических ссылок называются переключателями командной строки. Вот наиболее распространённые из них и их описания:
Переключатель | Описание |
–backup[=CONTROL] | резервное копирование каждого существующего файла назначения |
-d, -F, –directory | суперпользователь может использовать жесткую ссылку |
-f, –force | удаляет существующий файл назначения |
-I, –interactive | спрашивает перед удалением файлов назначения |
-L, –logical | разыменовывает символические ссылки |
-n, –non-dereference | обрабатывает символическую ссылку как обычный файл, если это символическая ссылка на каталог |
-P, –physical | делает жесткие ссылки непосредственно на символические ссылки, а не разыменовывает их. |
-r, –relative | создаёт символические ссылки относительно расположения ссылок |
-s, –symbol | создаёт символические ссылки вместо жестких ссылок |
-S, –suffix=SUFFIX | переопределяет обычный суффикс резервных копий |
-v, –verbose | выводит имя каждого файла при создании ссылки |
Как Изменить или Удалить Символическую Ссылку в Linux?
Вы можете удалить существующие ссылки, прикреплённые к файлам или каталогам, с помощью команды unlink или rm. Вот как вы можете сделать это с помощью команды unlink:
Аналогичным образом удаляем символическую ссылку с помощью команды rm:
Помните, что если источник больше не находится в текущем местоположении, вам следует удалить символические файлы, чтобы избежать создания дубликатов, которые могут замедлить работу.
Итоги
Linux — замечательная платформа для разработки интерактивного и динамичного приложения, где вы можете экспериментировать и пробовать что-то новое. Но для этого вам нужна прочная база. Изучите основы языка, чтобы использовать весь потенциал платформы.
В этом руководстве вы узнали, что такое символическая ссылка и как её использовать. Это лишь азы, продолжайте учиться, чтобы освоить ещё много полезных инструментов!
Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.
Источник