Saya memiliki sub-filesystem lengkap dalam jalur /home/user/system
yang berisi struktur Linux standar dengan direktori /bin
, /home
, /root
, /usr
, /var
, /etc
, ...
Sistem sub-file ini mengandung tautan simbolik, baik relatif maupun absolut. Symlink relatif baik-baik saja, mereka tetap berada di dalam sub-filesystem di bawah /home/user/system
. Tetapi symlink absolut bermasalah, karena mereka menunjuk ke target di luar sub-filesystem.
Sebagai contoh, kita mengasumsikan symlink absolut sebagai berikut (terlihat di dalam sub-filesystem):
/usr/file1 -> /usr/lib/file1
Dalam keseluruhan sistem file, kami memiliki tautan /home/user/system/usr/file1
yang sekarang mengarah ke file di /usr/lib/file1
luar sub-sistem file, alih-alih file /home/user/system/usr/lib/file1
di dalam sub-sistem file.
Saya ingin memiliki skrip sederhana, lebih disukai baris perintah tunggal (rsync, chroot, find, ...) yang mengubah setiap symlink absolut menjadi relatif.
Dalam contoh yang diberikan, tautan relatif itu akan menjadi
/usr/file1 -> ../usr/lib/file1