Как создать относительную символическую ссылку, которая будет работать на ПК

Как создать относительную символическую ссылку, которая будет работать на ПК

Для начала у меня следующая структура каталогов

~/a/bin
~/a/src -> /home/user/b/sync/src

Я создал символическую ссылку

cd ~/a/src
ln -s ../bin bin-xyz

теперь bin-xyz — это битая ссылка, и нет возможности перейти в нее с помощью cd.

Что я ищу?

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

 cd ~/a/src/bin-xyz 

или

 cd ~/b/sync/src/bin-xyz

должно работать при условии, что в ~/a/ или ~b/sync/ есть каталог bin

Почему я это ищу?

Я синхронизирую ~/b/sync/src между машинами, где ~/a/ — это мое рабочее пространство на обеих машинах, но имя пользователя на машинах отличается. Поэтому наличие относительного пути, который работает, означает для меня более простой рабочий процесс.

Для синхронизации я использую BitTorent Sync.

Спасибо :-)

решение1

теперь bin-xyz — нерабочая ссылка

Причина этого, надеюсь, очевидна: либо ..нужно ссылаться надействительныйродительский каталог, иначе это было бы совершенно неоднозначно.

Так как ~/a/src -> /home/user/b/sync/src, я предполагаю с этим как $PWDи ln -s ../bin bin-xyzвы пытаетесь ссылаться /home/user/b/sync/src/bin-xyzна /home/user/a/sync/bin. В этом случае вам следует просто использовать абсолютные пути:

 ln -s /home/user/a/sync/bin /home/user/b/sync/src/bin-xyz

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

В вашем вопросе (может быть?) подразумевается, что вы не можете этого сделать, потому что на самом деле задействованы две разные системы. Это подразумевает, что либо смонтирован сетевой ресурс, либо вы используете одно и то же блочное устройство с обоими, что в свою очередь подразумеваетпроблема XY-- не могу решить этот вопрос без дополнительных подробностей.

Связанный контент