Hard Link và Soft Link trên Linux

[For NIIT Q8]

Hard Link và Soft Link trên Linux là 2 khái niệm khá phức tạp nhưng rất hay. Hay vì nếu hiểu được các nguyên tắc cơ bản của hệ thống file thì ta thấy phân biệt nó đơn giản hơn nhiều.

Một số điểm cần nắm trước:

  • Về phía người sử dụng, file chứa data và được phân biệt với nhau bằng file name.
  • Về phía hệ thống, file được phân biệt bằng chỉ số index node, viết tắt là inode. Mỗi file name có 1 inode đi kèm. Chỉ số inode tham chiếu đến 1 vùng nhớ trong đó có chứa địa chỉ vùng nhớ lưu trữ data.
Hard Link

 

Hard Link

Hard Link

 

File gốc có tên là filename, số inode là inode#, vùng dữ liệu là data.

Khi tạo hard link với tên là othername thì inode đi kèm với nó sẽ chính là inode# của filename. Vì cùng inode# nên sẽ cùng tham chiếu đến 1 vùng nhớ chứa địa chỉ của data do đó có cùng tham chiếu đến vùng data.

Soft Link

Soft Link

Soft Link

 

Khi tạo soft link với tên là othername thì inode đi kèm sẽ là 1 inode# khác. Inode# này tham chiếu đến vùng nhớ chứa địa chỉ dẫn đến vùng data của soft link. Trong data này chứa đường dẫn đến file gốc.

Đây là điểm khác biệt cơ bản nhất của Hard Link và Soft Link. Từ đó ta có thể giải thích được tất cả những khác biệt khác, chẳng hạn chuyện gì xảy ra khi xóa file gốc.

Thực hành:

[abel@centos ~]$ echo “Original” > original.file
[abel@centos ~]$ ln original.file hardlink.file
[abel@centos ~]$ ln -s original.file softlink.file
[abel@centos ~]$ ls -il
total 20
588105 -rw-rw-r– 2 abel abel 9 Jan 12 04:04 hardlink.file
588105 -rw-rw-r– 2 abel abel 9 Jan 12 04:04 original.file
588106 lrwxrwxrwx 1 abel abel 13 Jan 12 04:04 softlink.file -> original.file

[abel@centos ~]$ cat original.file
Original
[abel@centos ~]$ cat hardlink.file
Original
[abel@centos ~]$ cat softlink.file
Original
[abel@centos ~]$ rm -f original.file
[abel@centos ~]$ cat hardlink.file
Original
[abel@centos ~]$ cat softlink.file
cat: softlink.file: No such file or directory

About dongthao

The best things in life, they are free ... (Cry on my shoulder lyric)
This entry was posted in Hệ điều hành, Linux, Linux Tutorial and tagged , , . Bookmark the permalink.

Có 4 phản hồi tại Hard Link và Soft Link trên Linux

  1. Tiến nói:

    Rất cảm ơn bạn, giải thích rất dễ hiểu😀

  2. John Cat nói:

    bài viết rất hay và dễ hiểu. Mạn phép cho mình copy lại sang blog mình.😀

  3. longtth nói:

    cám ơn anh, bài rất hay và hữu ích lại cực kì đơn giản, dễ hiểu.

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s