Liên hệProfile
Danh mục

Mục Lục

    Hard Link và Soft Link trong Linux khác nhau ở điểm nào?

    Nguyễn Hưng

    Ngày đăng:

    11/03/2026

    Cập nhật lần cuối:

    11/03/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    11/03/2026

    Cập nhật lần cuối:

    11/03/2026

    Mục lục

    Hard Link và Soft Link là hai phương thức tạo liên kết tệp tin phổ biến trong hệ điều hành Linux. Về cơ bản, chúng giúp bạn truy cập một tệp tin từ nhiều vị trí khác nhau mà không cần nhân đôi dữ liệu thực tế, nhưng lại có cơ chế hoạt động và cấu trúc inode hoàn toàn riêng biệt. Trong bài viết này, mình sẽ hướng dẫn bạn cách phân biệt chính xác, chi tiết về 2 loại liên kết này.

    Những điểm chính

    • Định nghĩa Hard Link: Hiểu rõ Hard Link là một tham chiếu trực tiếp đến inode của file, hoạt động như một tên gọi thứ hai cho cùng một dữ liệu, giúp tối ưu dung lượng và hỗ trợ sao lưu.
    • Định nghĩa Soft Link: Nắm vững Soft Link là một liên kết trỏ đến tên/đường dẫn của file, linh hoạt hơn vì có thể liên kết đến thư mục và hoạt động xuyên qua các phân vùng.
    • So sánh chi tiết: Có được một bảng so sánh rõ ràng về các điểm khác biệt cốt lõi giữa Hard Link và Soft Link, giúp bạn chọn đúng loại liên kết cho từng mục đích sử dụng.
    • Cách tạo Hard Link và Soft Link: Thành thạo cú pháp lệnh lnln -s để tự mình tạo ra các liên kết cứng và mềm một cách chính xác.
    • Lưu ý khi sử dụng: Nắm được các lưu ý quan trọng để sử dụng cả hai loại liên kết một cách an toàn, tránh các lỗi phổ biến như liên kết gãy hoặc rủi ro khi chỉnh sửa.
    • Giải đáp thắc mắc: Trả lời các câu hỏi nâng cao như tại sao không thể tạo hard link cho thư mục, chuyện gì xảy ra khi copy hard link sang phân vùng khác và tại sao xóa file gốc mà hard link vẫn hoạt động.

    Hard Link là gì?

    Hard Link (Liên kết cứng) là một bản sao trỏ trực tiếp đến cùng một mã Inode với tệp gốc trên ổ cứng. Nói cách khác, tệp gốc và Hard Link chia sẻ chung một nội dung và không phân biệt đâu là bản chính, đâu là bản phụ.

    Hard link không trỏ theo tên file gốc mà trỏ đến inode, nên việc đổi tên hoặc di chuyển file sang thư mục khác trong cùng một phân vùng không làm ảnh hưởng đến hard link. Hard link chỉ mất khi inode ban đầu bị thay thế hoàn toàn, ví dụ như khi file bị ghi đè theo cách tạo inode mới thay vì chỉ sửa nội dung.​

    Hard link là phương thức tạo thêm một tham chiếu trực tiếp đến inode của file
    Hard link là phương thức tạo thêm một tham chiếu trực tiếp đến inode của file

    Đặc điểm của Hard Link:

    • Chung Inode: Có cùng mã Inode, dung lượng và quyền truy cập như tệp gốc.
    • Bảo toàn dữ liệu: Nếu bạn xóa tệp gốc, dữ liệu vẫn có thể được truy cập thông qua Hard Link (dữ liệu chỉ thực sự mất khi tất cả các Hard Link trỏ đến nó bị xóa).
    • Giới hạn hệ thống tệp: Không thể tạo Hard Link giữa các phân vùng ổ đĩa khác nhau.
    • Không áp dụng cho thư mục: Hệ thống Linux không cho phép tạo Hard Link cho thư mục để tránh gây ra lỗi vòng lặp đệ quy.

    Công dụng chính của Hard Link: 

    • Tối ưu dung lượng lưu trữ: Hard Link cho phép người dùng tạo ra nhiều bản sao của file tại các thư mục khác nhau mà hoàn toàn không tiêu tốn thêm không gian ổ cứng.
    • Hỗ trợ tốt cho sao lưu: Đây là cơ chế nền tảng để tạo các bản chụp dữ liệu (snapshot) nhanh chóng, thường được ứng dụng trong các giải pháp backup như rsnapshot hay Time Machine.
    • Cơ chế tham chiếu vật lý thống nhất: Do tất cả các liên kết cứng đều trỏ về cùng một Inode duy nhất nên việc quản lý phiên bản trở nên đơn giản và nhất quán.

    Soft Link là gì?

    Soft Link (Liên kết mềm) còn được gọi là Symbolic links, là một liên kết trỏ đến tên hoặc đường dẫn của một file hoặc thư mục trên ổ cứng thay vì trỏ vào inode và vị trí vật lý như hard links. Hiểu đơn giản, Soft Link hoạt động tương tự như tính năng “Shortcut” trên Windows. Vì Soft Link trỏ trực tiếp vào file nên nếu file gốc bị đổi tên, di chuyển sang vị trí khác hoặc bị xóa, Soft Link sẽ bị hỏng và trở nên vô nghĩa.

    Soft Link còn được gọi là Symbolic links
    Soft Link còn được gọi là Symbolic links

    Các đặc điểm chính của Soft Link:

    • Sở hữu Inode độc lập: Khác với Hard Link, Soft Link có một số định danh Inode riêng biệt, hoàn toàn khác với Inode của file gốc trỏ tới.
    • Tính phụ thuộc dữ liệu: Sự tồn tại của Soft Link phụ thuộc hoàn toàn vào file gốc. Nếu file gốc bị xóa hoặc di chuyển, Soft Link sẽ lập tức trở thành liên kết gãy và không thể truy cập được nữa.
    • Khả năng liên kết đa nền tảng: Soft Link có thể trỏ tới các file nằm trên các phân vùng hoặc hệ thống file khác nhau.
    • Khả năng linh hoạt: Soft Link có thể liên kết đến cả thư mục và hoạt động xuyên qua các hệ thống tập tin hoặc các phân vùng khác nhau.

    Công dụng chính của Soft Link:

    • Quản lý không gian lưu trữ linh hoạt: Hỗ trợ di chuyển dữ liệu thực tế sang phân vùng ổ cứng khác mà vẫn giữ nguyên đường dẫn truy cập ban đầu, giúp các ứng dụng hoạt động bình thường mà không cần cấu hình lại.
    • Kết nối đa nền tảng: Bạn có thể tận dụng khả năng liên kết xuyên phân vùng của Soft Link để kết nối dữ liệu giữa các hệ thống file khác nhau.
    • Tối ưu hóa truy cập dòng lệnh: Soft Link giúp tạo các lối tắt ngắn gọn cho các file thực thi của ứng dụng trong các thư mục hệ thống, giúp người dùng gọi phần mềm dễ dàng mà không cần nhập đường dẫn đầy đủ hoặc số phiên bản phức tạp.
    • Hỗ trợ đồng bộ hóa đám mây: Soft Link cho phép ánh xạ các thư mục dữ liệu quan trọng nằm rải rác trên ổ cứng vào thư mục quản lý của các dịch vụ đám mây để thực hiện sao lưu tự động mà không làm thay đổi vị trí gốc của tệp.

    So sánh chi tiết Hard Link và Soft Link

    Tiêu chíHard LinkSoft Link
    Bản chấtLà một tên khác của file gốc (cùng file).Là một shortcut trỏ tới file gốc.
    Cơ chế trỏTrỏ trực tiếp vào Inode (Dữ liệu vật lý).Trỏ vào đường dẫn/tên file của file gốc.
    Số InodeGiống file gốc (Chia sẻ cùng Inode với file gốc).Khác file gốc (Có Inode riêng).
    Khi xóa file gốcDữ liệu vẫn an toàn, truy cập bình thường.Link bị lỗi, không truy cập được.
    Phạm vi hoạt độngChỉ trong cùng một phân vùng.Có thể liên kết xuyên phân vùng và hệ thống file khác.
    Hỗ trợ thư mụcKhông.Có.
    Dung lượng fileBằng dung lượng file gốc.Rất nhỏ, chỉ chứa đường dẫn.
    Đối tượng liên kếtChỉ liên kết được với Tập tin.Liên kết được cả Tập tin và Thư mục.
    Lệnh thực hiệnln file linkln -s file link

    Việc lựa chọn giữa Hard Link và Soft Link phụ thuộc vào mục đích sử dụng cụ thể của bạn:

    • Dùng Soft Link khi bạn muốn tạo đường tắt tiện lợi, cần liên kết đến thư mục hoặc liên kết giữa các ổ đĩa khác nhau.
    • Dùng Hard Link khi bạn cần cơ chế sao lưu/bảo vệ dữ liệu an toàn hơn hoặc muốn truy cập cùng một nội dung dữ liệu dưới nhiều tên gọi khác nhau mà không tốn thêm dung lượng lưu trữ.
    So sánh chi tiết Hard Link và Soft Link
    So sánh chi tiết Hard Link và Soft Link (Nguồn: Internet)

    Cách tạo Hard Link và Soft Link

    Cách tạo Hard Link

    Cú pháp lệnh tạo Hard Link như sau:

    ln [tên_tệp_gốc] [tên_link]

    Ví dụ, để tạo một hard link từ file.txt, bạn thực thi lệnh sau:

    ln file.txt hardlink.txt

    Để kiểm tra, bạn dùng lệnh liệt kê kèm theo chỉ số inode (-i):

    ls -li

    Kết quả sẽ cho thấy hai file có cùng một số inode.

    Inode của file.txt và hardlink.txt sẽ giống nhau.
    Inode của file.txt và hardlink.txt sẽ giống nhau.

    Cách tạo Soft Link

    Cú pháp tạo Soft Link được thực hiện bằng cách sử dụng thêm tham số -s (symbolic):

    ln -s [tên_tệp_gốc] [tên_link]

    Ví dụ tạo Soft Link:

    Bước 1: Đầu tiên, bạn tạo một file dữ liệu mẫu như sau:

    echo "Xin chào Vietnix!" > /home/vietnix.txt

    Khi đó, tên file gốc là /home/vietnix.txt sẽ chứa một dòng văn bản.

    File gốc là /home/vietnix.txt chứa một dòng văn bản
    File gốc là /home/vietnix.txt chứa một dòng văn bản

    Bước 2: Sau đó bạn tạo liên kết mềm trỏ tới file vừa tạo:

    ln -s /home/vietnix.txt  /home/lienket.txt
    Tạo một liên kết mềm tên là lienket.txt, trỏ đến vietnix.txt.
    Tạo một liên kết mềm tên là lienket.txt, trỏ đến vietnix.txt.

    Bạn có thể kiểm tra lại dữ liệu từ liên kết bằng lệnh sau để xem có giống nhau file gốc không:

    cat /home/lienket.txt
    Kiểm tra nội dung của liên kết mềm
    Kiểm tra nội dung của liên kết mềm

    Bạn kiểm tra thông tin link bằng ls -l thì sẽ thấy dấu mũi tên trỏ từ Soft link vừa tạo sang file gốc:

    ls -l /home/
    Kiểm tra thông tin
    Kiểm tra thông tin

    Lưu ý khi sử dụng Hard Link và Soft Link

    Lưu ý khi sử dụng liên kết cứng (Hard Link)

    • Giới hạn về hệ thống file: Bạn không thể tạo Hard Link giữa các phân vùng hoặc ổ đĩa khác nhau vì Hard Link chỉ hoạt động trong phạm vi một phân vùng duy nhất.
    • Không áp dụng cho thư mục: Hệ thống Linux mặc định ngăn chặn việc tạo Hard Link cho thư mục để tránh gây ra các vòng lặp vô hạn trong cấu trúc cây thư mục, làm hỏng quy trình duyệt file của hệ thống.
    • Cơ chế xóa dữ liệu: Dữ liệu vật lý chỉ thực sự bị xóa khỏi ổ cứng khi tất cả các Hard Link và file gốc trỏ tới nó đều bị xóa. Nếu bạn xóa file gốc nhưng vẫn còn một Hard Link tồn tại đâu đó, dữ liệu vẫn chiếm dung lượng ổ cứng.
    • Rủi ro khi chỉnh sửa: Bạn hãy cẩn trọng khi chỉnh sửa nội dung của một Hard Link, vì thay đổi này sẽ áp dụng ngay lập tức lên file gốc và tất cả các Hard Link còn lại.
    Lưu ý khi sử dụng Liên kết cứng (Hard Link)
    Lưu ý khi sử dụng Liên kết cứng (Hard Link)

    Lưu ý khi sử dụng liên kết mềm (Soft Link)

    • Quyền truy cập: Quyền truy cập hiển thị trên Soft Link là ảo và không có ý nghĩa thực tế, quyền truy cập thực sự được quyết định bởi file gốc. Nếu user không có quyền đọc file gốc thì họ cũng không thể đọc qua Soft Link.
    • Kích thước tệp: Kích thước hiển thị của Soft Link rất nhỏ, chỉ phản ánh độ dài của chuỗi ký tự đường dẫn, không phản ánh dung lượng thực của dữ liệu mà nó trỏ tới.
    • Nên dùng đường dẫn tuyệt đối cho Soft Link: Khi tạo Soft Link, hãy dùng đường dẫn tuyệt đối (ví dụ: /home/user/file.txt thay vì file.txt) để liên kết không bị hỏng nếu bạn di chuyển file Soft Link sang thư mục khác.
    Lưu ý khi sử dụng Liên kết mềm (Soft Link)
    Lưu ý khi sử dụng Liên kết mềm (Soft Link)

    Câu hỏi thường gặp

    Tại sao không tạo được hard link cho thư mục trong Linux?

    Linux chặn việc tạo hard link tới thư mục để tránh phá vỡ cấu trúc cây thư mục theo dạng không vòng lặp.​ Nếu cho phép hard link tới thư mục, điều này rất dễ tạo ra vòng lặp trong cây thư mục, khiến các thao tác duyệt file có thể bị lặp vô hạn hoặc cho kết quả sai.​

    Nếu copy file có hard link sang phân vùng khác thì chuyện gì xảy ra?

    Khi copy (cp) file có hard link sang phân vùng khác, bản copy trên phân vùng mới là một file độc lập với inode mới, không còn quan hệ hard link với file cũ nữa.​ Điều này xảy ra vì bảng inode của mỗi filesystem là tách biệt, nên không thể duy trì việc nhiều tên file cùng trỏ tới một inode nằm ở filesystem khác.​

    Vì sao xóa file gốc mà hard link vẫn dùng được?

    File gốc thực chất chỉ là một trong các entry tên trỏ tới cùng một inode, không có khái niệm file gốc tuyệt đối ở mức filesystem.​ Chỉ khi tất cả các tên trỏ đến inode đó bị xóa, hệ thống mới giải phóng dữ liệu vật lý trên đĩa.​

    Hard link và soft link là hai cơ chế liên kết giúp bạn tách tên file khỏi dữ liệu vật lý, từ đó tổ chức và truy cập dữ liệu linh hoạt hơn trong Linux/UNIX. Khi hiểu rõ cơ chế trỏ inode, phạm vi hoạt động và cách hệ thống xử lý khi xóa hoặc di chuyển file, bạn có thể chọn đúng loại link để vừa tối ưu dung lượng, vừa giảm rủi ro lỗi liên kết trong môi trường thực tế.

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Hướng dẫn thiết lập SSH Passwordless Login trên Linux chi tiết
    Hướng dẫn thiết lập SSH Passwordless Login trên Linux chi tiết

    SSH Passwordless Login là cơ chế đăng nhập SSH không cần nhập mật khẩu, thay vào đó dùng cặp khóa mã hóa để xác thực người dùng với máy chủ từ xa. Trong bài viết này, mình sẽ hướng dẫn bạn các thiết lập SSH Passwordless Login chi tiết từng bước trên Linux. Những điểm…

    11/03/2026

    Cách dùng lệnh networkct để kiểm tra và quản lý trạng thái các liên kết mạng
    Cách dùng lệnh networkct để kiểm tra và quản lý trạng thái các liên kết mạng

    networkctl là công cụ dòng lệnh dùng để giám sát trạng thái các thiết bị mạng được quản lý bởi systemd-networkd. Lệnh này cho phép xem chi tiết cấu hình và liên kết, hỗ trợ quản trị viên chẩn đoán, xử lý sự cố mạng nhanh chóng. Trong bài viết dưới đây, mình sẽ hướng…

    11/03/2026

    Hướng dẫn sửa lỗi command pip3 not found chi tiết và nhanh chóng
    Hướng dẫn sửa lỗi command pip3 not found chi tiết và nhanh chóng

    Lỗi command pip3 not found nghĩa là hệ điều hành không tìm thấy lệnh pip3 trong PATH, thường do pip3 chưa được cài hoặc cài rồi nhưng không được thêm vào biến môi trường PATH. Trong bài viết này, mình sẽ cùng bạn tìm hiểu về nguyên nhân và cách khắc phục lỗi command pip3…

    11/03/2026

    Hướng dẫn sử dụng Nano Editor: Từ cài đặt đến chỉnh sửa cho người mới bắt đầu
    Hướng dẫn sử dụng Nano Editor: Từ cài đặt đến chỉnh sửa cho người mới bắt đầu

    Nano Editor (GNU nano) là một trình soạn thảo văn bản chạy trong terminal có giao diện đơn giản và dễ sử dụng trên các hệ điều hành Linux/UNIX. Công cụ này thường được cài sẵn trên nhiều bản phân phối Linux và phù hợp cho người mới, để mở, chỉnh sửa và lưu các…

    11/03/2026

    linux

    system-linux

    text