Liên kết mềm (tượng trưng) so với liên kết cứng

Soft Link Vs Hard Link



Liên kết tượng trưng (còn được gọi là liên kết mềm) và Liên kết cứng là một tài nguyên để truy cập tệp hoặc thư mục từ bất kỳ vị trí nào. Bài viết này sẽ mô tả sự khác biệt giữa liên kết tượng trưng và liên kết cứng.

Liên kết cứng

Liên kết cứng không phải là một tệp chứa đường dẫn đến tệp gốc mà là bản sao phản chiếu của tệp gốc mà chúng trỏ tới. Tệp và các liên kết cứng của tệp đó không được liên kết bởi tên hoặc đường dẫn mà bởi biểu tượng lưu trữ thông tin trên tệp, như vị trí, ngày tạo, quyền và các thuộc tính khác của tệp. Mỗi số inode là duy nhất trong một hệ thống tệp ngăn các liên kết cứng hoạt động giữa các phân vùng hoặc hệ thống khác nhau. Liên kết cứng không thể được sử dụng để liên kết các thư mục.







Ngược lại với liên kết mềm, liên kết cứng chứa thông tin mà chúng liên kết đến, vì vậy nếu tệp gốc bị xóa, bạn vẫn có thể truy cập vào dữ liệu của tệp.



Trong tất cả các hệ thống Linux, cả liên kết cứng và liên kết tượng trưng đều được tạo bằng lệnh ln . Để bắt đầu, trước tiên hãy tạo một tệp có tên là LinuxHintFile và một thư mục được gọi là LinuxHintDirectory như thể hiện trong hình ảnh dưới đây:



chạm vàoLinuxHintFile
rmkdir LinuxHintDirectory
ls
nguồn gốc@Linux/Trang Chủ/linuxhint#





Để tạo một liên kết cứng có tên là Link2LHFile tới tệp LinuxHintFile chạy trong terminal:

lnLiên kết LinuxHintFile2LHFile



Sau khi kiểm tra với ls chúng tôi thấy liên kết cứng mà chúng tôi vừa tạo, nếu bạn nhập ls -i bạn sẽ thấy inodes của tệp, bạn có thể xác nhận liên kết chúng tôi vừa tạo có cùng số inode với tệp gốc, nhập:

ls -tôi

Như chúng tôi đã nói ở trên, chúng tôi không thể sử dụng liên kết cứng cho các thư mục cũng như liên kết đến các ổ đĩa hoặc hệ thống tệp khác, chúng tôi sẽ liên kết LinuxHintDirectory bằng một liên kết mềm.

Bạn có thể tìm thấy các liên kết cứng trong thư mục làm việc bằng cách chạy:

tìm thấy -kiểuNS-liên kết+1

Bạn cũng có thể tìm các tệp bằng inodes, cho lần chạy này:

tìm thấy.-inum <InodeNumber>

Như bạn thấy, nó tìm thấy cả tệp gốc và liên kết cứng chia sẻ cùng một số inode.

Liên kết mềm

Ngược lại với liên kết cứng, liên kết mềm không phải là bản sao của tệp gốc, chúng chứa đường dẫn đến tệp gốc, vì điều này nếu tệp gốc bị xóa, liên kết mềm hoặc liên kết tượng trưng sẽ không có tệp nào trở thành liên kết bị hỏng, hoặc một liên kết mồ côi, có nghĩa là nếu bạn làm mất tệp nguồn, nếu bạn xóa hoặc di chuyển nó, liên kết tượng trưng sẽ mất quyền truy cập vào thông tin, trong khi với liên kết cứng, thông tin vẫn còn mặc dù đã xóa tệp nguồn vì nó là đầy đủ và chính xác bản sao của tệp đó.

Ngoài ra, trái ngược với liên kết cứng, các liên kết tượng trưng không chia sẻ cùng một inode với tệp gốc, đó là lý do tại sao liên kết tượng trưng có thể vượt qua các ổ đĩa và hệ thống tệp trong khi liên kết cứng thì không. Các liên kết tượng trưng có thể được sử dụng để liên kết các thư mục trong khi với các liên kết cứng thì không thể.

Các liên kết tượng trưng cũng được tạo với chương trình ln , nhưng để liên kết là tượng trưng / mềm, chúng ta cần chỉ định tham số -NS , để tạo một liên kết tượng trưng đến thư mục LinuxHintDirectory được gọi là LHDLink, hãy chạy:

ln -NSLinuxHintDirectory LHDLink

Và sau đó chạy ‘ ls -i 'Để kiểm tra xem nó đã được tạo đúng cách chưa:

Như chúng ta thấy trong trường hợp này, liên kết tượng trưng đã được tạo, nhưng nó có số inode khác với tệp gốc.

Chúng ta có thể liệt kê các liên kết tượng trưng trong một thư mục bằng lệnh ls -l

Trong hình trên, chúng ta có thể thấy trong quyền của tệp đầu tiên, tiền tố NS đối với các liên kết tượng trưng, ​​phần cuối của dòng cũng hiển thị cho tệp nào các điểm liên kết tượng trưng.

Tôi hy vọng bạn thấy bài viết này hữu ích để hiểu sự khác biệt giữa liên kết cứng và liên kết tượng trưng và cách tạo chúng. Tiếp tục theo dõi LinuxHint để biết thêm các mẹo và cập nhật về Linux.