首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用简单的Linux命令将绝对符号链接转换为相对符号链接

使用简单的Linux命令将绝对符号链接转换为相对符号链接
EN

Unix & Linux用户
提问于 2013-11-12 16:55:11
回答 2查看 22.8K关注 0票数 43

我有一个完整的子文件系统在一个路径/home/user/system包含标准的/bin/home/root/usr/var/etc,.

这个子文件系统包含符号链接,无论是相对的还是绝对的.相关的符号链接很好,它们停留在/home/user/system下的子文件系统中。但是绝对的符号链接是有问题的,因为它们指向子文件系统之外的目标。

作为一个例子,我们假设一个绝对的符号链接,如下所示(在子文件系统中看到):

代码语言:javascript
复制
/usr/file1 -> /usr/lib/file1

在整个文件系统中,我们在/home/user/system/usr/file1上有一个链接,它指向子文件系统之外的文件/usr/lib/file1,而不是子文件系统中的文件/home/user/system/usr/lib/file1

我想要一个简单的脚本,最好是一个命令行(rsync,chroot,find,.)它将每个绝对符号链接转换为相对的符号链接。

在给定的示例中,该相对链接将成为

代码语言:javascript
复制
/usr/file1 -> ../usr/lib/file1
EN

回答 2

Unix & Linux用户

发布于 2017-11-15 17:44:14

相对链接中的绝对转换由sshfs支持,它通过ssh挂载远程目录。

命令是:

代码语言:javascript
复制
sudo sshfs <remote_user>@<remote_ip_address>:/ /home/<host_user>/mntpoint/ -o transform_symlinks -o allow_other

命令,特别是<placeholders>,应该适应特定的环境。

票数 4
EN

Unix & Linux用户

发布于 2022-04-06 11:21:15

接受的答案是伟大的,但chroot是唯一需要的,因为这个问题的具体要求,希望重新解释不同的符号链接。对于那些只想将绝对符号链接更新为相对符号链接(例如允许复制/粘贴文件夹而不破坏符号链接)的人,只需安装小程序symlinks,然后运行:

代码语言:javascript
复制
symlinks -cr .

其中,.是目录的路径,r是递归更改的路径,c将asbolute符号链接转换为普通的符号链接。没有任何选项,它将列出绝对符号链接。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/100918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档