Что такое символическая ссылка линукс

Содержание
  1. Команда Ln в Linux (создание символических ссылок)
  2. Типы ссылок
  3. Как использовать команду ln
  4. Создание символической ссылки к файлу
  5. Создание символических ссылок на каталог
  6. Замена символических ссылок
  7. Удаление символических ссылок
  8. Выводы
  9. Символические и жесткие ссылки в Linux. Команда ln
  10. Что такое ссылка на файл в Linux
  11. Что такое символические ссылки
  12. Что такое жесткие ссылки
  13. Отличия символических ссылок от жестких
  14. Как создавать ссылки в Linux. Команда ln
  15. Создание символических ссылок
  16. Создание жестких ссылок
  17. Как удалить ссылку
  18. Создание ссылок через файловый менеджер
  19. Резюме
  20. Символические ссылки в Linux
  21. Содержание
  22. Что такое символическая ссылка (или симлинк)?
  23. Создание символических ссылок в графическом интерфейсе файлового менеджера Thunar в среде рабочего стола XFCE
  24. Создание символических ссылок в графическом интерфейсе файлового менеджера Dolphin в среде рабочего стола KDE
  25. Создание символической ссылки через терминал

Команда 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 выведет сообщение об ошибке.

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

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

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

Чтобы удалить / удалить символические ссылки, используйте команду unlink или rm .

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

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

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

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

Выводы

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

Для получения дополнительной информации о команде ln посетите страницу руководства ln или введите man ln в терминале.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Символические и жесткие ссылки в Linux. Команда ln


Что такое символические и жесткие ссылки в Linux. Чем они отличаются. Как создавать ссылки. Использование команды ln.

Что такое ссылка на файл в Linux

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

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

Что такое символические ссылки

Символическая ссылка (symbolic link) — это специальный файл, который является ссылкой на другой файл или каталог (их еще называют целевым файлом, целевым каталогом).

Символические ссылки также называют символьными, мягкими ссылками (soft links) или сим-ссылками (sym-link).

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

Возвращаясь к аналогии с ярлыками в Windows, символические ссылки это своего рода ярлыки на файлы. Можно создавать несколько символических ссылок на один файл и эти ссылки могут иметь разные имена.

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

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

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

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

Что такое жесткие ссылки

Жесткая ссылка (hard link) является своего рода синонимом для существующего файла. Когда вы создаете жесткую ссылку, создается дополнительный указатель на существующий файл, но не копия файла.

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

Читайте также:  Windows domain user manager

В Linux каждый файл имеет уникальный идентификатор — индексный дескриптор (inode). Это число, которое однозначно идентифицирует файл в файловой системе. Жесткая ссылка и файл, для которой она создавалась имеют одинаковые inode. Поэтому жесткая ссылка имеет те же права доступа, владельца и время последней модификации, что и целевой файл. Различаются только имена файлов. Фактически жесткая ссылка это еще одно имя для файла.

Жесткие ссылки нельзя создавать для директорий.

Жесткая ссылка не может указывать на несуществующий файл.

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

Схематично отношение между исходным файлом, жесткой ссылкой и данными можно показать следующей схемой:

Отличия символических ссылок от жестких

Кратко подведем итог, написанного выше.

Символическая ссылка:

  • Указывает на целевой файл или каталог. Фактически является небольшим файлом, содержащим путь до целевого файла.
  • Не содержит внутри себя содержимого самого файла. Содержит путь к целевому файлу.
  • Имеет собственные права доступа, которые не распространяются на целевой файл.
  • Удаление / переименование / перемещение целевого файла не обновляет автоматически ссылку. Ссылка начинает указывать на несуществующий файл, становится неработающей.
  • Изменение прав доступа у целевого файла не обновляет права доступа у ссылки.
  • Может быть создана для директории.
  • Ссылка и целевой файл имеют разные файловые индексы (inode) в файловой системе.
  • Может указывать на несуществующий файл.
  • Символическая ссылка может использовать относительный путь до целевого файла.

Жесткая ссылка:

  • Является своего рода еще одним именем на файл.
  • Не может указывать на директорию.
  • Нельзя создавать жесткие ссылки между файлами разных файловых систем.
  • Не может указывать на несуществующий файл.
  • Жесткая ссылка и файл, для которого она создавалась, имеют одинаковые индексы (inode) в файловой системе.

Как создавать ссылки в Linux. Команда ln

Для создания ссылок в Linux используется команда ln (от слова link).

Синтаксис команды ln :

Обычно используется только одна опция -s . Полный список опций можно получить, выполнив команду man ln.

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

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

Например, создадим в текущем каталоге символическую ссылку с именем mylink на файл /home/pingvinus/myfile :

Выполнив команду ls -li , можно увидеть, что ссылка myfile указывает на файл /home/pingvinus/myfile

Обратите внимание, что ссылка и целевой файл имеют разные inode (792300 и 787622. См. число в начале строки).

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

Пример создания и использования символьной ссылки (при создании ссылки используется относительный путь до целевого файла, если такую ссылку переместить, то она будет невалидна):

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

Чтобы создать жесткую ссылку нужно использовать команду ln без опции -s .

Например, создадим жесткую ссылку с именем hardlinktofile на файл myfile.txt :

Выведем список файлов:

Можно заметить, что hardlinktofile и myfile.txt имеют одинаковый inode=787622, так как являются фактически разными именами для одного файла (inode которого 787622).

Также видно, что на данный inode имеется 2 ссылки (см. цифру 2 в 3-м столбце). Если мы удалим исходный файл, то количество ссылок на него уменьшается на 1, то есть на самом деле файл не удаляется, так как на него больше, чем 1 ссылка. И мы по прежнему можем работать с файлом по имени hardlinktofile.

Обратите внимание, что после выполнения команды rm, количество ссылок на файл стало равно 1.

Пример создания и использования жесткой ссылки:

Как удалить ссылку

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

Читайте также:  Очистка диска компьютера windows

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

Некоторые графические файловые менеджеры поддерживают создание символических ссылок. Чтобы создать символическую ссылку в таком файловом менеджере, достаточно кликнуть правой кнопкой мыши по файлу и выбрать в меню пункт Создать ссылку ( Create Link , Make Link ).

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

Резюме

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

Источник

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

В операционной системе Linux есть такой замечательный и широко используемый инструмент, как символические ссылки. Поговорим, как их создавать в XFCE (Thunar), KDE (Dolphin), через терминал.

Содержание

Допустим, у вас есть директории («папки»):
/home/user/Dir1
/home/user/Dir2

Но вы хотите, чтобы папка /home/user/Dir2 открывалась по адресу /home/user/Dir1/Dir2, но при этом продолжала работать по своему основному адресу /home/user/Dir2. Таким образом, файл с адресом /home/user/Dir2/file.txt будет доступен и по нему, и по адресу /home/user/Dir1/Dir2/file.txt ! аналогично для остальных вложенных файлов и директорий.

На практике это может пригодиться много где. Допустим, клиенты Яндекс.Диска, Облака Mail.Ru, Baidu Pan (bypy) умеют выполнять синхронизацию с учетом символических ссылок. Например, Яндекс.Диск настроен на синхронизацию папки

— это Домашняя папка) с непосредственно Яндекс.Диском. Но вы хотите, чтобы «облачное» хранилище синхронизировало («всасывало») в себя директорию, которая находится абсолютно в другом месте, чем та, которую оно синхронизирует по умолчанию. Достаточно создать внутри директории, которую синхронизирует ваше «облако» символическую ссылку на директорию, которую нужно «всосать». Например,

то есть создать символическую ссылку «Думалогия» внутри «Домашняя папка/Yandex.Disk». Тогда по адресу

/Yandex.Disk/Думалогия будет доступно содержимое папки /media/oblako/ГОТОВОЕ/Думалогия. Таким образом, Яндекс.Диск (или другое облачное хранилище, умеющее работать с симлинками, «всосет» в себя содержимое папки /media/oblako/ГОТОВОЕ/Думалогия.

Создание символических ссылок в графическом интерфейсе файлового менеджера Thunar в среде рабочего стола XFCE

1. Открыть файловый менеджер, дойти до папки, на которую будем создавать символическую ссылку.
2. Выделить директорию (папку) или файл, на которую будем создавать симлинк.
3. В меню «Правка» выбрать «Создать ссылку».
4. Создастся объект «ссылка на…», который будет в списке файлов и директорий.
Можно переименовать. 5. Вырезаем его: нажимаем на него правой мышью и выбираем «Вырезать» или нажимаем Ctrl+X.
6. Вставляем в нужное место.
7. Открываем его в месте, куда мы его вставили, и наблюдаем за адресной строкой файлового менеджера. Проверяем, что все работает. как и написано выше.

Создание символических ссылок в графическом интерфейсе файлового менеджера Dolphin в среде рабочего стола KDE

1. Открыть файловый менеджер.
2. Открыть папку, в которой будем создавать символическую ссылку на другую папку.
3. Правой кнопкой мыши нажимаем в свободное место, выбираем «Создать» ——> «Символическая ссылка». В открывшемся окошке указываем или выбираем с помощью кнопки открытия файлового диалога адрес, на который будем ссылаться.
4. Проверяем работоспособность.

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

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

То есть открываете блокнот (текстовый редактор любой), вставляете туда скопированные пути в эту команду, которую заранее копируете и вставляете, затем получившуюся команду копируете в терминал.
Михаил Н. (обсуждение) 13:17, 22 мая 2016 (MSK)

Источник

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