Ho un completo sub-file system all'interno di un percorso /home/user/system
contenente la struttura standard di Linux con le directory /bin
, /home
, /root
, /usr
, /var
, /etc
, ...
Questo sottosistema contiene collegamenti simbolici, relativi o assoluti. I relativi link simbolici vanno bene, rimangono all'interno del sottosistema sotto /home/user/system
. Ma i symlink assoluti sono problematici, in quanto puntano a un target esterno al sottosistema.
Ad esempio, assumiamo un collegamento simbolico assoluto come segue (visto all'interno del sottosistema):
/usr/file1 -> /usr/lib/file1
Nel filesystem generale abbiamo un collegamento /home/user/system/usr/file1
che ora punta a un file /usr/lib/file1
esterno al sottosistema, anziché a un file /home/user/system/usr/lib/file1
all'interno del sottosistema.
Vorrei avere un semplice script, preferibilmente una singola riga di comando (rsync, chroot, find, ...) che converte ogni link simbolico assoluto in uno relativo.
Nell'esempio dato, quel collegamento relativo diventerebbe
/usr/file1 -> ../usr/lib/file1