J'ai un sous-système de fichiers complet à l' intérieur d' un chemin /home/user/system
contenant la structure standard Linux avec des répertoires /bin
, /home
, /root
, /usr
, /var
, /etc
, ...
Ce sous-système de fichiers contient des liens symboliques, relatifs ou absolus. Les liens symboliques relatifs sont très bien, ils restent dans le sous-système de fichiers sous /home/user/system
. Mais les liens symboliques absolus sont problématiques, car ils pointent vers une cible en dehors du sous-système de fichiers.
À titre d'exemple, nous supposons un lien symbolique absolu comme suit (vu à l'intérieur du sous-système de fichiers):
/usr/file1 -> /usr/lib/file1
Dans le système de fichiers global, nous avons un lien /home/user/system/usr/file1
qui pointe maintenant vers un fichier /usr/lib/file1
à l'extérieur du sous-système de fichiers, au lieu d'un fichier /home/user/system/usr/lib/file1
à l' intérieur du sous-système de fichiers.
Je voudrais avoir un script simple, de préférence une seule ligne de commande (rsync, chroot, find, ...) qui convertit chaque lien symbolique absolu en un lien relatif.
Dans l'exemple donné, ce lien relatif deviendrait
/usr/file1 -> ../usr/lib/file1