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

Advertisements

About dongthao

"Man does not simply exist but always decides what his existence will be, what he will become the next moment"
This entry was posted in Hệ điều hành, Linux, Linux Tutorial and tagged , , . Bookmark the permalink.

6 Responses to Hard Link và Soft Link trên Linux

  1. Tiến says:

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

  2. John Cat says:

    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 says:

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

  4. Pingback: Hard Link và Soft Link trên Linux | Tèo's Blog

  5. evil says:

    Cảm ơn anh, bài viết rất dễ hiểu, em đã đọc mấy bài và đến bài viết của anh em mới hiểu.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s