Bài này sẽ nói về liên kết cứng (Hard Link) và liên kết tượng trưng (Symbolic Link ) của hệ điều hành Linux.
1. Liên kết cứng(hard link)
Là một liên kết trong cùng hệ thống tập tin với 2 inode entry tương ứng trỏ đến cùng một nội dung vật lý (cùng số inode vì chúng trỏ đến cùng dữ liệu).
Lệnh tạo liên kết cứng như sau:
ln [file nguồn] [file đích]
Ví dụ: tạo tập tin hard.txt trong /root
Qua lệnh ls -i
ở trên thì hard.txt và hardlink.txt có số inode giống nhau là 33631781.
Thêm nội dung "lien ket cứng" cho file hard.txt:
echo “lien ket cung” >hard.txt
Xóa file hard.txt thì nội dung của file hardlink.txt vẫn còn.
Nội dung trong hardlink.txt vẫn còn vì khi xóa tập tin hard.txt hệ thống chỉ xóa đi số link count trong inode của tập tin đi 1.
Khi sử dụng lệnh rm để xóa file thì làm giảm đi một hard link. Khi số lượng hard link giảm còn 0 thì không thể truy cập tới nội dung của file được nữa
2. Liên kết tượng trưng(soft link)
Là liên kết không dùng đến inode entry mà chỉ đơn thuần là một shortcut. Nó sẽ tạo ra một inode mới và nội dung của inode này trỏ đến tên tập tin gốc.
Lệnh tạo liên kết cứng như sau:
ln -s [file nguồn] [file đích]
Ví dụ: tạo tập tin soft.txt trong /root
Qua lệnh ls -i
ở trên thì soft.txt và softlink.txt có số inode khác nhau lần lượt là 33631797 và 33631781.
Thêm nội dung "lien ket tuong trung" cho file soft.txt:
echo “lien ket tuong trung” >soft.txt
Xóa file soft.txt thì nội dung của file softlink.txt sẽ không còn.
Nội dung của softlink.txt không hiển thị được vì softlink.txt trỏ đến một tập tin khác, mà tập tin này không tồn tại.
Chú ý: Symlink trên linux có thể liên kết đến một thư mục và có thể liên kết đến hai file thuộc hai phân vùng khác nhau.