Khái Niệm Liên Kết Cứng Và Liên Kết Mềm Trong Linux - Hoanghainh
Có thể bạn quan tâm
Thật ra khái niệm này cũng không có gì đáng để quan tâm quá nhiều (nếu chỉ thi thôi), nhưng vì mấy hôm trước đọc sách mà thấy nói ong đầu quá. May sao trên mạng cũng có một vài tài liệu nói dễ hiểu hơn. Hôm nay xin mạn phép chém lại một chút. Khái niệm liên kết tồn tại trên UNIX khá lâu rồi. Khái niệm này hoàn toàn bao quát hơn khái niệm Shortcut bên Windows. Unix cho phép tạo một liên kết tắt để trỏ đến một file vật lí khác, nó có thể là một file hay một thư mục. Ở đây phát sinh 2 khái niệm là liên kết tắt cứng và liên kết tắt mềm. 1. Liên kết tắt mềm File liên kết tắt mềm chỉ chứa các thông tin của file vật lí mà nó trỏ đến, nó hoàn toàn không tham chiếu trực tiếp đến điểm nhập inode của file này. Khi bạn xóa file vật lí gốc, thì dĩ nhiên file liên kết tắt hoàn toàn không còn ý nghĩa j nữa, trừ khi bạn khởi tạo lại file vật lí đã xóa. Nhưng nếu xóa file liên kết tắt mềm thì không có nghĩa là file vật lí kia cũng bị xóa nốt! Mọi thao tác như thêm, chỉnh sửa dữ liệu trong 2 file này hoàn toàn như nhau. Giả dụ ta có thư mục test trong Home. Sử dụng lệnh “ln -s” để tạo 1 liên kết mềm đến thư mục này.
$ ln -s test test-fileNhư vậy, kết quả thu được là ta có một file liên kết mềm test-file nằm trong Home (để ý bạn sẽ thấy cái mũi tên ở file này). Câu lệnh “ls -l” sẽ cho ta biết thông tin chi tiết của file test-file:
$ ls -s test-fileKết quả thu được sẽ có dạng: “lrwxrwxrwx 1 hoanghai hoanghai 4 2009-12-09 22:58 test-file -> test” Để ý rằng chữ “l” (in đậm) thay thế cho thuộc tính của file test-file, nó biểu thị rằng test-fle là một file liên kết và nó trỏ đến thư mục test (phần in đầm cuối).
Ban thử thao tác thêm, xóa hay copy file trong thư mục test sẽ thấy kết quả như đã nói ở trên. 2. Liên kết tắt cứng Liên kết tắt cứng sẽ tạo ra 1 file vật lí cùng trỏ đến mục nhạp inode của file vật lí gốc. 2 fle này hoàn toàn đồng đẳng với nhau. Nếu xóa file gốc thì dữ liệu hoàn toàn không bị mất, nó chỉ mất khi ko còn liên kết nào đến inode nữa. Giả dụ ta tạo ra file_test1:
$ cat > file_test1Chúng ta sẽ tạo liên kết cứng trỏ file_test2 đến file_test1 ở trên.
$ ln file_test1 file_test2Bây giờ dùng lệnh “ls -l” để xem lệnh “ln” đã tạo ra file_test2 như thế nào
$ls -l file_test*Như thế bạn sẽ thấy 2 file hoàn toàn tương tự nhau.
Cần lưu ý một số đặc tính của liên kết cứng như sau: – Đặc tính đầu tiên mà ta thấy là không có kí tự “l” để nhận dạng liên kết (Như trong trường hợp liên kết mềm) – Nó coi như 1 file thông thường. – Đặc tính thưs 2 mà ta thấy là số liên kết vật lí liên kết đến file_test1 trước đó là 1, bây giờ đã tăng lên 2. Nó bao gồm liên kết đến chính nó (Liên kết này cũng là 1 liên kết cứng). Bạn không thể biết 2 file trên có tham chiếu đến cùng dữ liệu hay ko, trừ khi xem qua chúng. – Hai file: file_test1 và file_test2 có cùng dung lượng (ở đây là 12 bytes), mặc dù trên ổ đĩa khối dữ liệu chúng lưu trữ cũng chỉ là 12 bytes (Chứ ko phải 12 + 12 = 44 bytes). – Nếu bạn xóa file_test1 thì file_test2 vẫn đọc được nội dung dữ liệu. Chỉ khi bạn xóa luôn cả 2 file thì hệ thống mới nhận ra rằng inode không còn tham chiếu đến liên kết cứng nào đó, khi đó nó sẽ xóa khối dữ liệu 12 bytes kia.
Hoàng Hải
Chia sẻ:
- Túi
- Tumblr
- In
Có liên quan
Từ khóa » Trong Linux Một Liên Kết Mà Có Cùng Chỉ Số I-node Và Trỏ đến Cùng Một Dữ Liệu được Gọi Là
-
Hard Links Và Symbolic Links Trên Linux - Viblo
-
Giải Thích Về Hard Links Và Soft Links Trong Linux - Cloudzone
-
Inode Là Gì? Cách Thức Hoạt động Của Inode Như Thế Nào - Bizfly Cloud
-
Thế Nào Là Hard Link Và Symbolic Link Image Thế Nào Là ...
-
Inodes Là Gì? Cách Thức Hoạt động Của Inodes - Vietnix
-
Inodes Là Gì? Cách Sử Dụng Inode Trong Hệ Thống Tệp Linux - BKHOST
-
Linux Inode Hoạt động Như Thế Nào?
-
Inodes Trong Linux Là Gì Và Chúng được Sử Dụng Như Thế Nào?
-
Disk Inode Là Gì? Cách Xem Và Sử Dụng Inode Trên Linux - Freetuts
-
Inode Là Gì? Inode Có Tác Dụng Gì Trên Máy Chủ Web?
-
Inodes Trong Linux Là Gì? - AnonyViet
-
Symbolic Link Là Gì
-
Hard Links Và Symbolic Links Trên Linux - Trang Chủ - .vn
-
Hard Link Và Symbolic Link Trong Linux - Saiury92's Blog