首页 > 解决方案 > 将绝对符号链接转换为相对符号链接

问题描述

我同步目录“Promotion”,其中包含具有不同目录结构的两台机器之间的绝对符号链接。因此绝对符号链接在两台机器上都不起作用。为了使它们起作用,我想将它们转换为相对链接。目录结构为

Machine 1: /home/user/Privat/Uni Kram/Promotion/
Machine 2: /homes/user/Promotion/

以下是两个示例符号链接:

 4821      1 lrwxrwxrwx   1 manu  users         105 Nov 17  2014 ./Planung\ nach\ Priorit\303\244ten.ods -> /home/manu/Dokumente/Privat/Uni\ Kram/Promotion/Pl\303\244ne\ und\ Ideen/Pl\303\244ne/Planung\ nach\ Priorit\303\244ten.ods  
37675      1 lrwxrwxrwx   1 manu  users         102 Aug  3  2015 ./Kurs/Lab\ Course\ Somewhere -> /home/manu/Dokumente/Privat/Uni\ Kram/Promotion/Workshops\ &\ Fortbildungen/Kurs\ Lab\ Course\ Somewhere

我的非工作尝试是(基于示例this):

find * -type l -print | while read l; do 
ln -srf $(cut -c 24- < $(readlink $l)) $l;
done

标签: bashshsymlink

解决方案


在包含正确符号链接文件的机器上,运行以下命令:

find . -type l -exec ln -sfr {} . \;

推荐阅读