我有一个路径中一个完整的子文件系统/home/user/system
包含标准的Linux结构目录/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
4
对于那些有兴趣尝试解决此问题的人,以下是SO尝试的250k rep用户:stackoverflow.com/questions/2564634/…。该线程中有几种潜在的解决方案,但每种解决方案都有其处理的特定情况,而其他情况则没有。
—
slm
—
猫