вторник, 24 марта 2015 г.

Несколько Linux систем - одни общие документы (Вариант №2)

Так получилось, что у моей заметки Несколько Linux систем - одни общие документы образовалось продолжение. А произошло это после небольшой критики на разных форумах, большое спасибо Haron Prime за критику и совет.
О том как примонтировать необходимый раздел и автоматически его монтировать при старте системы, см. в первой заметке.
Первый вариант основывался на системном инструменте xdg-user-dirs, но далеко не все его устанавливают по умолчанию, в этом варианте мы будем использовать штатный инструмент *nix - ln — команда UNIX, устанавливающая связь между файлом и именем файла.

Основы работы с этим инструментом подробно рассказали на Хабрахабр, я углубляться не буду, а просто покажу пример как я это реализовал.
Считаем что раздел у нас уже примонтирован, и в моем случае он имеет вот такой путь - /media/ulyssesd/My_Home/ulyssesd а далее уже находятся все остальные каталоги (Документы, Музыка и прочая), а основной путь перед локальными файлами у меня получается вот такой - /home/ulyssesd/
При создании симлинка на каталог, может получится так что симлинк будет создан внутри самого каталога или получить вот такой ответ от системы
ln: не удалось создать символьную ссылку «/home/ulyssesd/Dropbox»: Файл существует
Так что перед созданием симлинка мы все эти каталоги удалим (у меня система чистая, это сложности не вызывает, если у вас там есть информация, рекомендую ее скопировать в другое место или переименовать каталоги).
Итак приступим (все операции проводятся от имени пользователя без использования sudo и прав root!)
Удаляем каталог (для примера возьмем каталог "Видео")
$ rm -fR ~/Видео
Создаем симлинк
$ ln -s /media/ulyssesd/My_Home/ulyssesd/Видео /home/ulyssesd
Т.к. каталогов много, а я человек ленивый, то решил для себя сделать sh файл собрав туда весь список каталогов и вот что у меня получилось
файл - simlink.sh
#!/bin/sh
# Скрипт по привязке папок из каталога home/user
# к другому примонтировану разделу
# все операции проводятся с правами обычного пользователя
# !!! без использования sudo или прав root !!!
# !!! Перед запуском убедитесь что необходимый раздел примонтирован и доступен !!!
# Также необходимо проверить что бы все папки на которые делаются симлинки были пусты
# т.к. они будут удалены перед созданием симлинка
rm -fR ~/Видео
ln -s /media/ulyssesd/My_Home/ulyssesd/Видео /home/ulyssesd
rm -fR ~/Документы
ln -s /media/ulyssesd/My_Home/ulyssesd/Документы /home/ulyssesd
rm -fR ~/Изображения
ln -s /media/ulyssesd/My_Home/ulyssesd/Изображения /home/ulyssesd
rm -fR ~/Загрузки
ln -s /media/ulyssesd/My_Home/ulyssesd/Загрузки /home/ulyssesd
rm -fR ~/Музыка
ln -s /media/ulyssesd/My_Home/ulyssesd/Музыка /home/ulyssesd
rm -fR ~/Рабочий\ стол
ln -s /media/ulyssesd/My_Home/ulyssesd/Рабочий\ стол /home/ulyssesd
rm -fR ~/Общедоступные
ln -s /media/ulyssesd/My_Home/ulyssesd/Общедоступные /home/ulyssesd
rm -fR ~/Шаблоны
ln -s /media/ulyssesd/My_Home/ulyssesd/Шаблоны /home/ulyssesd
# Опционально для тех кто использует облачные хранилища
rm -fR ~/Dropbox
ln -s /media/ulyssesd/My_Home/ulyssesd/Dropbox /home/ulyssesd
rm -fR ~/Yandex.Disk
ln -s /media/ulyssesd/My_Home/ulyssesd/Yandex.Disk /home/ulyssesd
Отдельно хочу остановится на каталоге "Рабочий стол", т.к. он в имени имеет пробел, то в команде для терминала его необходимо использовать следующим образом "Рабочий\ стол"
Результаты работы можно оценить визуально
Или в терминале с помощью команды
$ ls - l
В результате исполнения которой увидите вот такое
Все, мы решили поставленную задачу.

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

0 коммент.:

Отправить комментарий