bash - 将绝对符号链接转换为相对符号链接
问题描述
我同步目录“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
解决方案
在包含正确符号链接文件的机器上,运行以下命令:
find . -type l -exec ln -sfr {} . \;
推荐阅读
- python - Pytrends - 随时间变化的兴趣 - 没有数据时返回无列
- alpine.js - $dispatch 选择更改事件以更新按钮焦点
- javascript - 将文本绘制到行(x1,y1,x2,y2)时旋转和转换值(使用 p5.js,处理 ... atan2)
- php - Laravel,使用https协议导出pdf时出错
- sql - 使用 max() 和 group by 后获取多行
- vbscript - DeleteFile 或 CopyFile 失败并出现错误 32813
- javascript - 谷歌浏览器不允许存储
- kubernetes - Submariner “发现网络详细信息 CIDR” 未完成
- bigcartel - 如何在 BigCartel(Luna 主题)中编辑幻灯片大小?
- c - 在STM32上测量信号频率