Computer >> Máy Tính >  >> Hệ thống >> Linux

Hiểu sự khác biệt giữa liên kết mềm và liên kết cứng trong Linux

Hiểu sự khác biệt giữa liên kết mềm và liên kết cứng trong Linux

Trên hệ thống Linux đang hoạt động của bạn, giả sử bạn có một tệp được lồng trong nhiều lớp thư mục. Để dễ dàng truy cập tệp đó, bạn muốn tạo lối tắt cho tệp đó trên màn hình nền của mình. Có thể sử dụng liên kết tượng trưng (còn được gọi là liên kết mềm). Cũng có một dạng liên kết khác được gọi là liên kết cứng. Trong bài viết này, chúng tôi sẽ giải thích sự khác biệt giữa liên kết mềm và liên kết cứng và xem bạn nên sử dụng liên kết nào.

Liên kết mềm và liên kết cứng

Một liên kết mềm, hay liên kết tượng trưng, ​​chỉ là một liên kết tượng trưng. Nó chỉ đơn giản là một con trỏ đến đường dẫn tệp đích. Một liên kết mềm không quan tâm đến việc tệp hoặc thư mục tại đường dẫn tệp có thực sự tồn tại hay không. Nếu tệp hoặc thư mục không tồn tại, nó sẽ chỉ dẫn đến một liên kết biểu tượng bị hỏng. Bạn có thể chỉnh sửa hoặc xóa liên kết biểu tượng và nó sẽ không ảnh hưởng đến tệp đích.

Mặt khác, một liên kết cứng có tác dụng tạo thêm tên cho tệp đích. Khi bạn chỉnh sửa nội dung trên một tệp, nó cũng sẽ sửa đổi nội dung trên tệp khác. Nói tóm lại, một liên kết mềm chỉ là một tham chiếu đến đường dẫn tệp đích, trong khi một liên kết cứng là một liên kết trực tiếp đến dữ liệu của tệp đích.

Dưới đây, chúng tôi sẽ minh họa cách thức hoạt động của các liên kết mềm và liên kết cứng.

Các liên kết mềm đang hoạt động

Giả sử chúng tôi có một tệp có tên “first_file.txt” có bốn dòng văn bản trong đó.

Hiểu sự khác biệt giữa liên kết mềm và liên kết cứng trong Linux

Chúng tôi sẽ tạo một liên kết mềm trong Thư mục chính của chúng tôi.

ln -s first_file.txt ~/sl-firstfile.txt

Trong Môi trường Máy tính để bàn GNOME, một liên kết mềm có thể được tạo cho một tệp bằng cách chỉ cần nhấp chuột phải vào tệp và chọn “Tạo liên kết”. Một liên kết mềm được tạo với tên tương tự như “Liên kết tới .txt.”

Hiểu sự khác biệt giữa liên kết mềm và liên kết cứng trong Linux

Nếu chúng tôi cố gắng xem nội dung của “sl-firstfile.txt”, chúng tôi có thể thấy nó giống với “first_file.txt.”

Hiểu sự khác biệt giữa liên kết mềm và liên kết cứng trong Linux

Nếu chúng ta xem xét hai tệp này trong Trình quản lý tệp, liên kết mềm sẽ xuất hiện dưới dạng một lối tắt đến tệp gốc. Mũi tên màu đen trong biểu tượng của tệp biểu thị điều này.

Hiểu sự khác biệt giữa liên kết mềm và liên kết cứng trong Linux

Khi chúng tôi cố gắng xem danh sách của thư mục hiện tại bằng lệnh ls -l , bạn có thể thấy nơi liên kết mềm đang trỏ đến tệp đích. Ký tự đầu tiên trong chuỗi quyền cho “sl-firstfile.txt” là “l”, có nghĩa là mục nhập này dành cho một liên kết.

Hiểu sự khác biệt giữa liên kết mềm và liên kết cứng trong Linux

Hành vi xóa của các liên kết mềm

Khi tệp đích bị xóa, liên kết mềm sẽ vẫn còn xung quanh.

Hiểu sự khác biệt giữa liên kết mềm và liên kết cứng trong Linux

Tuy nhiên, nó đã trở thành một liên kết "lủng lẳng" hoặc "bị hỏng" và vô dụng.

Hiểu sự khác biệt giữa liên kết mềm và liên kết cứng trong Linux

Bây giờ, nếu bạn tạo một tệp khác có cùng tên - “first_file.txt” - thì liên kết mềm sẽ hoạt động trở lại.

Lưu ý :trong trường hợp bạn gặp phải các liên kết mềm và muốn tìm đường dẫn tuyệt đối của tệp mà liên kết đã được tạo, chỉ cần sử dụng readlink lệnh như hình dưới đây.

Hiểu sự khác biệt giữa liên kết mềm và liên kết cứng trong Linux

Đầu ra của lệnh này sẽ là đường dẫn tuyệt đối của tệp gốc.

Liên kết cứng đang hoạt động

Bây giờ chúng ta sẽ tạo một liên kết cứng cho cùng một tệp trong Thư mục chính của chúng ta. Điều này có thể được thực hiện bằng lệnh sau:

ln first_file.txt hl-first-file.txt

Lưu ý :các phương pháp tạo liên kết mềm và liên kết cứng đều sử dụng ln yêu cầu. Sự khác biệt duy nhất là -s cờ biểu thị một liên kết tượng trưng.

Một cách khác để tạo liên kết cứng là sử dụng liên kết link lệnh.

link hl-firstfile.txt hl2-firstfile.txt

Kiểm tra trên cả hai tệp cho thấy rằng nội dung của chúng giống nhau.

Hiểu sự khác biệt giữa liên kết mềm và liên kết cứng trong Linux Hiểu sự khác biệt giữa liên kết mềm và liên kết cứng trong Linux

Trong GUI, cả hai tệp đều xuất hiện dưới dạng các thực thể riêng biệt. Không có dấu hiệu nào về sự tồn tại của một liên kết cứng.

Hiểu sự khác biệt giữa liên kết mềm và liên kết cứng trong Linux

Hãy để chúng tôi cố gắng thêm một dòng mới vào tệp liên kết cứng “hl-firstfile.txt.”

echo "hello" >> hl-first-file.txt

Thay đổi dữ liệu có thể được xem trong cả hai tệp.

Hiểu sự khác biệt giữa liên kết mềm và liên kết cứng trong Linux Hiểu sự khác biệt giữa liên kết mềm và liên kết cứng trong Linux

Khi một liên kết cứng được tạo, nó giống như thể tồn tại hai tệp khác nhau, nhưng dữ liệu của chúng được liên kết với nhau. Sự thay đổi trong cái này được phản ánh trong cái kia.

Mẹo nhanh :khi tạo liên kết mềm và liên kết cứng, bạn nên sử dụng cùng một phần mở rộng với tệp mà liên kết đang được tạo.

Hành vi xóa của các liên kết cứng

Đối với liên kết cứng, việc xóa tệp gốc hoặc liên kết cứng không phải là vấn đề đáng lo ngại. Dữ liệu ban đầu được lưu trữ trên tệp vẫn có thể truy cập được thông qua liên kết cứng.

Hiểu sự khác biệt giữa liên kết mềm và liên kết cứng trong Linux Hiểu sự khác biệt giữa liên kết mềm và liên kết cứng trong Linux

Khi nào thì liên kết mềm sẽ hữu ích?

Chúng tôi nhận thấy rằng các liên kết mềm xuất hiện dưới dạng các phím tắt cho một tệp. Khi chúng ta có một tệp trong nhiều lớp thư mục và muốn lưu trữ tệp đó ở một vị trí để dễ truy cập, thì một lựa chọn tốt là chỉ cần tạo một liên kết ngắn cho tệp đó.

Khi nào thì liên kết cứng sẽ hữu ích?

Chúng tôi nhận thấy rằng khi một liên kết cứng đã được tạo cho một tệp, bất kỳ thay đổi nào đối với tệp hoặc liên kết cứng đều được phản ánh trong cả hai.

Giả sử bạn có một máy chủ dự phòng. Cơ chế sao lưu gia tăng đang được sử dụng trong đó chỉ những thay đổi đối với tệp / thư mục được phản ánh kể từ lần sao lưu cuối cùng. Bạn có thể tạo liên kết cứng giữa tệp trong máy chủ và bản sao tương ứng trong máy tính. Khi quá trình sao lưu diễn ra, các thay đổi đối với tệp trong máy tính sẽ tự động được phản ánh với tệp được liên kết cứng tương ứng trong máy chủ, ngay cả khi tệp được thay đổi tên.

Kết luận

Cả liên kết mềm và liên kết cứng đều có những công dụng riêng và nên được sử dụng trong những trường hợp khác nhau. Hiểu được sự khác biệt của chúng cho phép bạn đưa ra quyết định tốt hơn khi tạo liên kết. Liên kết mềm và liên kết cứng cũng có thể được tạo cho các thư mục. Trong khi các liên kết mềm có thể được tạo trên các hệ thống tệp, các liên kết cứng chỉ có thể được tạo trong cùng một hệ thống tệp.