gpt4 book ai didi

bash - 将绝对符号链接(symbolic link)转换为相对符号链接(symbolic link)

转载 作者:行者123 更新时间:2023-12-05 03:04:20 26 4
gpt4 key购买 nike

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

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

这里有两个示例符号链接(symbolic link):

 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

最佳答案

在包含正确符号链接(symbolic link)文件的机器上,运行这个:

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

要仅更改当前目录中的符号链接(symbolic link)而不遍历所有子目录,请使用 -maxdepth 1 标志,因为上述命令会将子目录中的符号链接(symbolic link)移动到当前目录中。

此外,macos 提供的 native BSD ln 命令没有 -r 标志,但是 GNU 核心实用程序提供的 ln 命令可以代替使用,如果通过自制软件安装,请在 ln 之前添加 g 即。 gln -sfr

关于bash - 将绝对符号链接(symbolic link)转换为相对符号链接(symbolic link),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53080365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com