Символические ссылки в Linux — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
 
Строка 8: Строка 8:
 
Но вы хотите, чтобы папка /home/user/Dir2 открывалась по адресу /home/user/Dir1/Dir2, но при этом продолжала работать по своему основному адресу /home/user/Dir2. Таким образом, файл с адресом /home/user/Dir2/file.txt будет доступен и по нему, и по адресу /home/user/Dir1/Dir2/file.txt ! аналогично для остальных вложенных файлов и директорий.
 
Но вы хотите, чтобы папка /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 ([https://github.com/houtianze/bypy bypy]) умеют выполнять синхронизацию с учетом символических ссылок. Например, Яндекс.Диск настроен на синхронизацию папки ~/Yandex.Disk (~ — это Домашняя папка) с непосредственно Яндекс.Диском. Но вы хотите, чтобы «облачное» хранилище синхронизировало («всасывало») в себя директорию. которая находится абсолютно в другом месте, чем та, которую оно синхронизирует по умолчанию. Достаточно создать внутри директории, которую синхронизирует ваше «облако» символическую ссылку на директорию, которую нужно «всосать». Например, <br>
+
На практике это может пригодиться много где. Допустим, клиенты Яндекс.Диска, Облака Mail.Ru, Baidu Pan ([https://github.com/houtianze/bypy bypy]) умеют выполнять синхронизацию с учетом символических ссылок. Например, Яндекс.Диск настроен на синхронизацию папки ~/Yandex.Disk (~ — это Домашняя папка) с непосредственно Яндекс.Диском. Но вы хотите, чтобы «облачное» хранилище синхронизировало («всасывало») в себя директорию, которая находится абсолютно в другом месте, чем та, которую оно синхронизирует по умолчанию. Достаточно создать внутри директории, которую синхронизирует ваше «облако» символическую ссылку на директорию, которую нужно «всосать». Например, <br>
 
   ln -s "~/Yandex.Disk/Думалогия" "/media/oblako/ГОТОВОЕ/Думалогия"
 
   ln -s "~/Yandex.Disk/Думалогия" "/media/oblako/ГОТОВОЕ/Думалогия"
 
то есть создать символическую ссылку "Думалогия" внутри "Домашняя папка/Yandex.Disk". Тогда по адресу ~/Yandex.Disk/Думалогия будет доступно содержимое папки /media/oblako/ГОТОВОЕ/Думалогия. Таким образом, Яндекс.Диск (или другое облачное хранилище, умеющее работать с симлинками, "всосет" в себя содержимое папки /media/oblako/ГОТОВОЕ/Думалогия.
 
то есть создать символическую ссылку "Думалогия" внутри "Домашняя папка/Yandex.Disk". Тогда по адресу ~/Yandex.Disk/Думалогия будет доступно содержимое папки /media/oblako/ГОТОВОЕ/Думалогия. Таким образом, Яндекс.Диск (или другое облачное хранилище, умеющее работать с симлинками, "всосет" в себя содержимое папки /media/oblako/ГОТОВОЕ/Думалогия.

Текущая версия на 02:32, 22 сентября 2020

В операционной системе 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 (~ — это Домашняя папка) с непосредственно Яндекс.Диском. Но вы хотите, чтобы «облачное» хранилище синхронизировало («всасывало») в себя директорию, которая находится абсолютно в другом месте, чем та, которую оно синхронизирует по умолчанию. Достаточно создать внутри директории, которую синхронизирует ваше «облако» символическую ссылку на директорию, которую нужно «всосать». Например,

 ln -s "~/Yandex.Disk/Думалогия" "/media/oblako/ГОТОВОЕ/Думалогия"

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

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

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

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

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

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

 ln -s "путь1" "путь2"

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

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