Ich habe ein komplettes Unterdateisystem in einem Pfad /home/user/system
die Standard - Linux - Struktur mit Verzeichnissen enthalten /bin
, /home
, /root
, /usr
, /var
, /etc
, ...
Dieses Unterdateisystem enthält symbolische Links, entweder relativ oder absolut. Die relativen Symlinks sind in Ordnung, sie bleiben im Sub-Dateisystem unter /home/user/system
. Absolute Symlinks sind jedoch problematisch, da sie auf ein Ziel außerhalb des Sub-Dateisystems verweisen.
Als Beispiel nehmen wir einen absoluten Symlink wie folgt an (innerhalb des Sub-Dateisystems):
/usr/file1 -> /usr/lib/file1
Im gesamten Dateisystem haben wir an /home/user/system/usr/file1
dieser Stelle einen Link zu einer Datei /usr/lib/file1
außerhalb des Sub-Dateisystems anstelle einer Datei /home/user/system/usr/lib/file1
innerhalb des Sub-Dateisystems.
Ich hätte gerne ein einfaches Skript, vorzugsweise eine einzelne Befehlszeile (rsync, chroot, find, ...), die jeden absoluten Symlink in einen relativen konvertiert.
In dem gegebenen Beispiel würde dieser relative Link werden
/usr/file1 -> ../usr/lib/file1