我有一个完整的子文件系统在一个路径/home/user/system包含标准的/bin,/home,/root,/usr,/var,/etc,.
这个子文件系统包含符号链接,无论是相对的还是绝对的.相关的符号链接很好,它们停留在/home/user/system下的子文件系统中。但是绝对的符号链接是有问题的,因为它们指向子文件系统之外的目标。
作为一个例子,我们假设一个绝对的符号链接,如下所示(在子文件系统中看到):
/usr/file1 -> /usr/lib/file1在整个文件系统中,我们在/home/user/system/usr/file1上有一个链接,它指向子文件系统之外的文件/usr/lib/file1,而不是子文件系统中的文件/home/user/system/usr/lib/file1。
我想要一个简单的脚本,最好是一个命令行(rsync,chroot,find,.)它将每个绝对符号链接转换为相对的符号链接。
在给定的示例中,该相对链接将成为
/usr/file1 -> ../usr/lib/file1发布于 2017-11-15 17:44:14
相对链接中的绝对转换由sshfs支持,它通过ssh挂载远程目录。
命令是:
sudo sshfs <remote_user>@<remote_ip_address>:/ /home/<host_user>/mntpoint/ -o transform_symlinks -o allow_other命令,特别是<placeholders>,应该适应特定的环境。
发布于 2022-04-06 11:21:15
接受的答案是伟大的,但chroot是唯一需要的,因为这个问题的具体要求,希望重新解释不同的符号链接。对于那些只想将绝对符号链接更新为相对符号链接(例如允许复制/粘贴文件夹而不破坏符号链接)的人,只需安装小程序symlinks,然后运行:
symlinks -cr .其中,.是目录的路径,r是递归更改的路径,c将asbolute符号链接转换为普通的符号链接。没有任何选项,它将列出绝对符号链接。
https://unix.stackexchange.com/questions/100918
复制相似问题