Tôi có một hoàn chỉnh tiểu hệ thống tập tin bên trong một con đường /home/user/system
có chứa các cấu trúc Linux chuẩn với danh bạ /bin
, /home
, /root
, /usr
, /var
, /etc
, ...
Hệ thống tập tin con này chứa các liên kết tượng trưng, tương đối hoặc tuyệt đối. Các liên kết tương đối là tốt, chúng nằm trong hệ thống tập tin con bên dưới /home/user/system
. Nhưng các liên kết tuyệt đối có vấn đề, vì chúng trỏ đến một mục tiêu bên ngoài hệ thống tập tin con.
Để làm ví dụ, chúng tôi giả sử một liên kết tượng trưng tuyệt đối như sau (nhìn thấy bên trong hệ thống tập tin con):
/usr/file1 -> /usr/lib/file1
Trong hệ thống tệp tổng thể, hiện tại chúng ta có một liên kết /home/user/system/usr/file1
trỏ đến một tệp /usr/lib/file1
bên ngoài hệ thống tệp phụ, thay vì một tệp /home/user/system/usr/lib/file1
bên trong hệ thống tệp phụ.
Tôi muốn có một tập lệnh đơn giản, tốt nhất là một dòng lệnh duy nhất (rsync, chroot, find, ...) để chuyển đổi mọi liên kết tuyệt đối thành một liên kết tương đối.
Trong ví dụ đã cho, liên kết tương đối đó sẽ trở thành
/usr/file1 -> ../usr/lib/file1