67 Nguyễn Thị Định, Phường An Hải, TP. Đà Nẵng
Hướng dẫn

Giải thích về Hard links và soft links trong Linux

Giải thích về Hard links và soft links trong Linux
Chia sẻ

Cùng thảo luận về việc khi nào bạn sử dụng hard links hay soft links, và cú pháp của từng câu lệnh. Đã bao giờ bạn quen thuộc với điều gì đó, đã làm việc xung quanh nó, nhưng vẫn chưa hiểu đầy đủ các khái niệm của nó? Đây...

Mục lục

Hard links

Hard Limit
Soft links

Hard or soft?

Hard links

Phương thức hoạt động của hard link là một trong những gì cơ bản nhất chúng ta sẽ thảo luận hôm nay. Mọi file trong hệ thống Linux bắt đầu với một hard link đơn giản. Đó là sự liên kết giữa tên file và dữ liệu được lưu trong hệ thống. Tạo thêm một hard link nữa cho files có nghĩa sẽ tạo ra một số thay đổi khác, hãy cùng xem chúng
Đầu tiên bạn tạo một file mới trỏ tới dữ liệu giống y như file cũ. Điều này nghĩa là bạn có 2 files khác nhau, trông khác nhau, nhưng trỏ tới cùng một dữ liệu. Ví dụ, nếu bạn tạo ra một file /home/tcarrigan/demo/link_test và viết hello world vào trong file. Ở đây tôi đã có một hard link giữa tên file link_test và nội dung của file (hello world)

[tcarrigan@server demo]$ ls -l total 4 -rw-rw-r--. 1 tcarrigan tcarrigan 12 Aug 29 14:27 link_test

Ghi nhớ lại số liên kết ở đây là 1
Sau đó tôi sẽ tạo thêm một hard link mới trong thư mục /tmp tới file ở trên sử dụng dòng lệnh

[tcarrigan@server demo]$ ln link_test /tmp/link_new

Cú pháp ở đây là

ln (Đường dẫn file gốc) (Đường dẫn file mới)

Khi bạn trông vào hệ thống, bạn sẽ thấy cả hai hard links

[tcarrigan@server demo]$ ls -l link_test /tmp/link_new -rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 link_test -rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 /tmp/link_new

Sự khác nhau cơ bản ở đây là tên file. Và số liên kết đã được thay đổi thành (2). Nếu tôi dùng lệnh cat để xem nội dung của files mới. Nó sẽ hiển thị data ban đầu

[tcarrigan@server demo]$ cat /tmp/link_new hello world

Khi sự thay đổi xảy ra với một files, thì files còn lại cũng sẽ ảnh hưởng theo. Ví dụ như quyền hạn, số liên kết, chủ sở hữu, dấu thời gian và nội dung của file là hoàn toàn giống nhau. Nếu files gốc bị xoá, dữ liệu vẫn còn dưới hardlink thứ 2. Dữ liệu chỉ hoàn toàn bị loại bỏ khỏi ổ đĩa của bạn khi tất cả links tới dữ liệu bị loại bỏ. Nếu bạn tìm thấy hai files với các thông số giống hệt nhau nhưng không đảm bảo rằng chúng có được hard-link với nhau không, sử dụng câu lệnh ls -i để xem số inode. Những files được hard-link với nhau có cùng số inode

Hard Limit

Mặc dùng hardlink rất hữu dụng, nhưng có một số hạn chế trong những gì hard links có thể làm. Ví dụ như hardlink chỉ có thể tạo trên những file thông thường (Không phải thư mục hoặc những files đặc biệt). Đồng thời Hardlink cũng không thể mở rộng nhiều hệ thống tệp. Chúng chỉ hoạt động khi có hardlink mới tồn tại trên cùng một hệ thống tệp như file gốc

Soft links

Thường được gọi là symbolic links, soft links liên kết giữa non-regular files và regular files. Chúng có thể mở rộng giữa các filesystems (Điều mà hardlink không làm được). Về định nghĩa, một soft link không phải là một file thông thường, nó là một file đặc biệt trỏ tới file sẵn có. Giờ tôi sẽ chỉ cho bạn cách tạo một soft link. Tôi sử dụng câu lệnh ln -s với cú pháp

ln -s (Đường dẫn tới file bạn muốn trỏ tới) (Đường dẫn file mới)

Trong ví dụ phía dưới, tô sẽ tạo ra một file mới tại /home/tcarrigan/demo/soft_link_test với nội dung là (soft Hello world). Sau đó tôi sẽ tạo một soft link tới file tại /tmp/soft_link_new

[tcarrigan@server demo]$ ln -s /home/tcarrigan/demo/soft_link_test /tmp/soft_link_new [tcarrigan@server demo]$ ls -l soft_link_test /tmp/soft_link_new -rw-rw-r--. 1 tcarrigan tcarrigan 17 Aug 30 11:59 soft_link_test lrwxrwxrwx. 1 tcarrigan tcarrigan 35 Aug 30 12:09 /tmp/soft_link_new -> /home/tcarrigan/demo/soft_link_test

Lưu ý rằng /tmp/soft_link_new chỉ là một symbolic link, trỏ tới file gốc /home/tcarrigan/demo/soft_link_test. Nếu tôi dùng lệnh cat để xem nội dung của file /tmp/soft_link_new. Tôi sẽ thấy nội dung file gốc (soft Hello world)

[tcarrigan@server demo]$ cat /tmp/soft_link_new soft Hello world

Tất cả nghe có vẻ đã hoàn thảo, tuy nhiên vẫn có một số nhược điểm khi sử dụng soft link. Vấn đề lo ngại lớn nhất là mất mát và nhầm lẫn data. Nếu file gốc bị xoá thì softlink bị hỏng. Tình trạng lúc này là soft link bị treo và không trỏ vào đâu. Nếu bạn tạo một file mới với tên như file cũ, thì cái softlink lúc này không bị treo nữa. Nó sẽ trỏ tới file mới tạo, kể cả có nằm trong mục đích của bạn hay không, vì vậy hãy luôn để tâm vào mỗi thao tác nhé

Hard or soft?

Không có một câu trả lời rõ ràng ở đây, mọi thức tuỳ thuộc vào hoàn cảnh riêng của bạn. Trong khi các phương thức hoạt động có vẻ khó nhớ, nhưng cú pháp thì lại thật sự dễ nhớ. Vì vậy khá đơn giản để tach biệt hai thứ này trong trí nhớ chúng a. Tóm gọn lại

  • Một Hardlink luôn luôn trỏ tới một file có dữ liệu trong bộ nhớ
  • Một softlink luôn luôn trỏ file này tới một file khác mà file đó trỏ tới dữ liệu trong bộ nhớ
Chia sẻ

Bài viết liên quan

Tối ưu chi phí hạ tầng: chọn đúng cấu hình, thuê theo nhu cầu

Tối ưu chi phí hạ tầng: chọn đúng cấu hình, thuê theo nhu cầu

Cách giảm chi phí hạ tầng hợp lý: chọn đúng cấu hình (right-sizing), thuê theo nhu cầu, kết hợp dịch vụ và rà soát tài nguyên định kỳ mà không ảnh hưởng vận hành

Cách săn khuyến mãi VPS/máy chủ, tránh bẫy giá rẻ

Cách săn khuyến mãi VPS/máy chủ, tránh bẫy giá rẻ

Cách tận dụng khuyến mãi VPS và máy chủ hợp lý, đọc kỹ điều kiện gia hạn và nhận biết bẫy giá rẻ ảnh hưởng chất lượng dịch vụ

Chọn nhà cung cấp VPS/máy chủ: tiêu chí cần kiểm tra

Chọn nhà cung cấp VPS/máy chủ: tiêu chí cần kiểm tra

Các tiêu chí chọn nhà cung cấp VPS và máy chủ: uptime/SLA, hạ tầng data center, peering, hỗ trợ kỹ thuật và chính sách hoàn tiền, kèm cách đọc cam kết dịch vụ

Phần mềm mã nguồn mở thay thế để tiết kiệm bản quyền

Phần mềm mã nguồn mở thay thế để tiết kiệm bản quyền

Gợi ý các phần mềm mã nguồn mở thay thế giải pháp có phí cho máy chủ: hệ điều hành, cơ sở dữ liệu, web server, control panel và ảo hóa, kèm lưu ý chi phí vận hành

So sánh bản quyền control panel: cPanel, DirectAdmin, Plesk

So sánh bản quyền control panel: cPanel, DirectAdmin, Plesk

So sánh cPanel, DirectAdmin và Plesk về tính năng, hệ điều hành hỗ trợ và chi phí bản quyền, kèm gợi ý chọn control panel theo số website và nhu cầu

Các loại bản quyền Windows Server và cách chọn cho đúng

Các loại bản quyền Windows Server và cách chọn cho đúng

Hiểu cấp phép Windows Server theo core, CAL và các kênh OEM/Volume/CSP, phân biệt Standard và Datacenter để chọn bản quyền phù hợp và hợp lệ