Я понимаю, что такое логический рабочий каталог. Когда вы создаете символическую ссылку на каталог, а затем cd
на этот каталог, используя символическую ссылку, ваш логический рабочий каталог становитсяпуть символической ссылки + сама символическая ссылка! например:
$ pwd
/home/john/this_is_a_symbolic_link
Но в чем именно заключается преимущество логичного рабочего каталога?
решение1
Несколько сложный вариант использования:
В некоторых системах домашние каталоги пользователей могут, например, быть смонтированы с помощьюавтомонтировщик(как на Солярисе).
ОтСтатья Википедии "Automounter":
Целью автомонтирования является сохранение локальных системных ресурсов и уменьшение связи между системами, которые совместно используют файловые системы с несколькими серверами. Например, в крупной или средней организации могут быть сотни файловых серверов и тысячи рабочих станций или других узлов, получающих доступ к файлам с любого количества этих серверов в любое время. Обычно на любом данном узле в любой момент времени будет активно только относительно небольшое количество удаленных файловых систем (экспортов). Отсрочка монтирования такой файловой системы до тех пор, пока процессу действительно не понадобится доступ к ней, снижает необходимость отслеживать такие монтирования, повышая надежность, гибкость и производительность.
Автомонтирование может смонтировать home
общий ресурс NFS с какого-либо центрального файлового сервера по пути, например, /a
или /tmp_mnt
или подобному, а затем создать символическую ссылку из /tmp_mnt/home/steve
(физического домашнего каталога) в /home/steve
(логический домашний каталог) при входе в систему.
Это имеет преимущество, как упоминается в статье Википедии, требуя только одного монтирования home
общего ресурса NFS, даже если активны несколько пользователей. Когда домашний каталог кого-то больше не используется, символическая ссылка может быть удалена, а когда все пользователи выходят из системы, смонтированный общий ресурс NFS может быть даже полностью размонтирован.
Более простой пример:
Допустим, у вас закончилось место на /usr/local
. Затем вы можете добавить новые диски и смонтировать их как , например, /data/disk1
и /data/disk2
. Затем вы можете решить скопировать старое содержимое в /usr/local/bin
и /data/disk1
и /usr/local/lib
заново /disk/data2
создать /usr/local/bin
и /usr/local/lib
как символические ссылки на эти два каталога.
Изменение каталога с cd /usr/local/bin
затем физически переместит вас в , /data/disk1
но логически вы будете в /usr/local/bin
. Это также имеет эффект, что доступ к утилитам из /usr/local/bin
будет прозрачно получать доступ к их физическому местоположению в /data/disk1
без необходимости обновления вашей $PATH
переменной.
Другой:
Вы можете создать символическую ссылку с USB-накопителя, смонтированного пользователем, или другого устройства хранения данных где-то в разделе /media
as /home/steve/my_work_files
. Преимущество этого в том, что вы сможете перейти cd
в папку ~/my_work_files
, а не помнить, где /media
находятся ваши файлы.
решение2
$ cd this_is_a_symbolic_link
…
$ pwd
$ cd ..