Sự khác biệt giữa liên kết mềm (tượng trưng) và liên kết cứng là gì?


59

Tôi nghe nói rằng bây giờ bạn cũng có thể tạo các liên kết mềm trong Vista . Vậy, sự khác biệt giữa liên kết mềm (tượng trưng) và liên kết cứng trên UNIX / Linux / Vista là gì?

Có lợi thế của việc sử dụng cái này hơn cái kia không? Hay họ chỉ phục vụ hai mục đích riêng biệt?


Trong điều kiện thực tế, câu trả lời là bạn hầu như luôn muốn sử dụng một liên kết tượng trưng. Tôi hiểu rằng các liên kết cứng chủ yếu là để bảo toàn không gian, đặc biệt là trong những thứ như ảnh chụp nhanh và sao lưu gia tăng, trong đó các ảnh chụp liên tiếp có nhiều tệp giống nhau không có khả năng thay đổi trong tương lai.
Ryan Thompson

Điều này có nên được chuyển sang Unix & Linux không? Xem unix.stackexchange.com/questions/9575/ trên
ripper234

2
Không, nó không nên được di chuyển. Vì câu hỏi ban đầu không chỉ dành riêng cho Unix - Windows hỗ trợ các liên kết cứng và mềm.
Richard West

1
một số ứng dụng sẽ bị hỏng (và đôi khi rất tệ) nếu bạn sử dụng một liên kết mềm - đặc biệt là đối với các thư mục: liên kết mềm sẽ bị hủy đăng ký và khi đó và ứng dụng so sánh, giả sử /var/opt/log/appname(cấu hình của nó) với giá trị bị hủy bỏ, giả sử /apps/appname/logs, nó sẽ phàn nàn Đây không phải là một trận đấu. Cách khắc phục cho vấn đề này là sử dụng một mount --bind(trên Linux) để nối lại thư mục gốc đến vị trí mới.
warren

1
Chỉ cần làm rõ một vài điểm trong các câu trả lời khác ... Windows có thể tạo liên kết cứng (mặc dù tôi tin rằng chúng hoạt động hơi khác so với trong Unix). Hãy xem lệnh mklink và đối số h. (Nếu bạn nhập mklink vào dòng lệnh, bạn sẽ thấy tệp trợ giúp bao gồm cú pháp cơ bản.)

Câu trả lời:


68

Theo truyền thống, một liên kết cứng chia sẻ cùng cấu trúc hệ thống tệp (inode trong unixspeak), trong khi liên kết mềm là chuyển hướng tên đường dẫn.

  • Liên kết cứng phải nằm trên cùng một hệ thống tệp, liên kết mềm có thể vượt qua các hệ thống tệp.
  • Các tệp liên kết cứng vẫn được liên kết ngay cả khi bạn di chuyển một trong hai tệp đó (trừ khi bạn di chuyển một tệp sang hệ thống tệp khác kích hoạt cơ chế sao chép và xóa). Các tập tin liên kết mềm bị phá vỡ nếu bạn di chuyển mục tiêu (bản gốc) và đôi khi khi bạn di chuyển liên kết (Bạn đã sử dụng một đường dẫn tuyệt đối hay tương đối? Nó vẫn còn hiệu lực phải không?).
  • Các tập tin liên kết cứng là đồng bằng, trong khi bản gốc là đặc biệt trong các liên kết mềm và xóa bản gốc sẽ xóa dữ liệu. Dữ liệu sẽ không biến mất cho đến khi tất cả các liên kết cứng bị xóa.
  • Liên kết mềm có thể trỏ đến bất kỳ mục tiêu nào , nhưng hầu hết các hệ điều hành / hệ thống tập tin không cho phép các thư mục liên kết cứng để ngăn chặn các chu kỳ trong biểu đồ hệ thống tập tin (ngoại trừ các mục ...các mục trong thư mục unix là liên kết cứng).
  • Liên kết mềm có thể yêu cầu hỗ trợ đặc biệt từ các công cụ đi bộ hệ thống tập tin. Đọc lên readlink (2) .

(Một số chi tiết được nhắc lại bởi mat1t . Cảm ơn.)


Tóm tắt tốt đẹp. Mọi người dùng Linux nên biết điều này (mặc dù các liên kết cứng rất không phổ biến).
Artem Russakovskii

Câu trả lời của dmckee có các chi tiết về ngữ nghĩa khá chính xác. Chi tiết duy nhất tôi muốn thêm là một lời giải thích về những gì xảy ra ở cấp độ cao hơn: liên kết mềm là một tệp riêng, trong khi liên kết cứng là mục nhập thư mục trỏ đến dữ liệu hiện có. Wikipedia có nhiều chi tiết hơn về các liên kết cứngmềm .
Ông Shiny và New 安

tổng kết tốt đẹp, rất hữu ích
Razique

9
Cũng cần lưu ý rằng các liên kết cứng chia sẻ quyền cũng như thông tin sở hữu.
Corey S.

6
Vui lòng thêm rằng 2 liên kết cứng được tự động tạo với tên. và .. mỗi lần bạn tạo một thư mục. Trong Linux, đó là những liên kết cứng hợp lệ duy nhất đến một thư mục.
Mircea Vutcovici

10

Tóm tắt là một liên kết tượng trưng / ngắn hoạt động như một lối tắt đến vị trí của tệp đầu tiên, trong khi một liên kết cứng là một lối tắt đến tệp trên đĩa.

Nếu bạn xóa mục tiêu của liên kết mềm thì liên kết mềm sẽ ngừng hoạt động, nhưng nếu bạn xóa một bản sao của liên kết cứng, tệp sẽ vẫn còn trên đĩa cho đến khi tất cả các liên kết cứng đến nó bị xóa. Trong thực tế, tất cả tên tệp là liên kết cứng đến tệp trên đĩa.

Cũng có một số hạn chế nhất định, ví dụ tôi không nghĩ bạn có thể tạo liên kết cứng của các thư mục, nhưng bạn có thể tạo liên kết mềm của chúng. Liên kết mềm cũng có thể trỏ đến các tệp / thư mục trên các ổ đĩa và phân vùng khác nhau trong khi các liên kết cứng không thể.


-1

Hệ thống MS Windows luôn sử dụng các liên kết mềm (phím tắt). Đó là, liên kết chỉ đơn giản là hoạt động như một phím tắt chỉ đến vị trí tệp. Nếu vị trí của bản gốc được di chuyển, liên kết bị phá vỡ. Hơn nữa, những gì bạn làm đối với phím tắt (chẳng hạn như thay đổi quyền hoặc thay đổi tên của phím tắt) không ảnh hưởng đến tệp thực tế.

Vì vậy, câu hỏi bắt đầu với một giả định không chính xác. Có, Vista sử dụng các liên kết mềm, nhưng nó không phải là mới, đó là một phím tắt MS.


3
Không, NTFS hỗ trợ các liên kết cứng và có từ NTFS 3.1 (phiên bản hiện tại kể từ XP / 2003).
Chris S
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.