Liên kết thư mục của người khác


393

Trong bối cảnh của NTFS:

MKLINK [[/D] | [/H] | [/J]] Link Target

/D Tạo một liên kết tượng trưng thư mục. Mặc định là một liên kết tượng trưng tập tin.
/H Tạo liên kết cứng thay vì liên kết tượng trưng.
/J Tạo một thư mục nối.
Link chỉ định tên liên kết tượng trưng mới.
Target chỉ định đường dẫn (tương đối hoặc tuyệt đối) mà liên kết mới đề cập đến.

  1. Không phải là một giao diện thư mục giống hệt như một liên kết tượng trưng thư mục ?

    Sự khác biệt giữa mklink /D f1 f2và là mklink /J f1 f2gì?

  2. Vì một "thư mục" thực sự chỉ là một tệp , sự khác biệt giữa liên kết tượng trưng thư mục và liên kết tượng trưng của tệp là gì?


Câu trả lời:


364

Một ngã ba chắc chắn không giống với một liên kết tượng trưng thư mục, mặc dù chúng hoạt động tương tự nhau. Sự khác biệt chính là, nếu bạn đang xem một máy chủ từ xa, các mối nối được xử lý tại máy chủcác liên kết tượng trưng thư mục được xử lý tại máy khách . Cũng xem nhận xét của Matthew về thực tế rằng điều này có nghĩa là các liên kết tượng trưng trên hệ thống tệp cục bộ có thể trỏ đến các hệ thống tệp từ xa.

Giả sử rằng trên một máy có tên Alice, bạn phải đặt một điểm nối c:\myjpvà một liên kết tượng trưng thư mục c:\mysymlink, cả hai đều trỏ đến c:\targetfolder. Trong khi bạn đang sử dụng Alice, bạn sẽ không nhận thấy nhiều sự khác biệt giữa chúng. Nhưng nếu bạn đang sử dụng một máy khác có tên Bob, thì điểm giao nhau

\\Alice\c$\myjp sẽ chỉ vào \\Alice\c$\targetfolder

nhưng liên kết tượng trưng

\\Alice\c$\mysymlink sẽ chỉ vào \\Bob\c$\targetfolder

(Nên biết trước: theo mặc định, hệ thống không theo liên kết tượng trưng trên khối lượng từ xa, vì vậy trong nhiều trường hợp ví dụ thứ hai thực sự sẽ dẫn đến một trong hai "File Not Found" hoặc "Các liên kết tượng trưng không thể được theo sau bởi vì loại của nó bị vô hiệu hóa" )

Sự khác biệt giữa liên kết tượng trưng thư mục và liên kết tượng trưng tệp chỉ đơn giản là một liên kết đại diện cho một thư mục và một liên kết đại diện cho một tệp. Vì mục tiêu của liên kết không cần tồn tại khi liên kết được tạo, nên hệ thống tệp cần biết có nên thông báo cho các ứng dụng biết đó có phải là thư mục hay không.

Cũng cần lưu ý rằng việc tạo một liên kết tượng trưng đòi hỏi phải có đặc quyền đặc biệt (theo mặc định, chỉ có sẵn cho các quy trình nâng cao) trong khi việc tạo một đường nối chỉ yêu cầu quyền truy cập vào hệ thống tệp.


13
Chỉ cần rõ ràng: cũng có thể có sự khác biệt chức năng tinh vi khác giữa các mối nối thư mục và các liên kết tượng trưng thư mục. Điều từ xa so với điều cục bộ chỉ rõ ràng nhất từ ​​quan điểm của người dùng (trái ngược với quan điểm của nhà phát triển).
Harry Johnston

12
@MatthewSteeples có nghĩa là nếu tôi tạo một liên kết tượng trưng C:\testlink(trỏ đến C:\testtrên máy tính của tôi) và ai đó truy cập từ xa vào máy tính của tôi và nhấp vào C:\testlink, nó sẽ giải quyết C:\testtrên máy tính NGÀI, trong khi tôi tạo một đường nối thư mục C:\testlink(chỉ đến C:\testtrên máy tính của tôi) và ai đó truy cập từ xa vào máy tính của tôi và nhấp vào C:\testlink) nó sẽ dẫn anh ta đến C:\testmáy tính của tôi? Hay tôi đã đi sai đường vòng?
Pacerier

9
@Pacerier trong bối cảnh này có, nhưng các liên kết tượng trưng cho phép bạn có một thư mục trên máy tính của bạn trỏ đến chia sẻ mạng (vì chúng được giải quyết phía máy khách). Ví dụ: C: \ MyNetworkShare thực sự có thể trỏ đến \ Alice \ Share
Matthew Steeples

6
@MatthewSteeples nhưng chúng ta không thể tạo một đường nối thư mục C:\MyNetworkSharecũng trỏ đến \\Alice\Share?
Pacerier

8
@Pacerier, không, điểm giao nhau phải là cục bộ.
Harry Johnston

55

Nói chuyện phức tạp làm tổn thương não - Tôi thích biểu đồ:

Giả sử bất kỳ MyLinklà một liên kết tượng trưng và bất kỳ MyJunclà một ngã ba chỉ vào Target as created.

ví dụ

mklink /D MyLink C:\T_Dir để tạo một liên kết tượng trưng đến thư mục đích

mklink /J MyJunc C:\T_Dir để tạo một đường nối thư mục đến thư mục đích

Cú pháp mklink [/J,/D] [link path] [target path]như được gõ trên máy cục bộ


 link path    |   target path   |         When accessed ..
              |                 |  (locally)    |    (remotely)
              |                 |               |
C:\MyLink     |   C:\T_Dir      |  C:\T_Dir     |  [leads back to local]
C:\MyJunc     |   C:\T_Dir      |  C:\T_Dir     |  [leads to remote]
              |                 |
\\Svr\MyLink  |   C:\T_Dir      |   C:\T_Dir    |  [leads back to local]
\\Svr\MyJunc  |   C:\T_Dir      |  *** Must create and point local ***
              |                 |
C:\MyLink     |  \\Sv2\T_Dir    |  \\Sv2\T_Dir  |   Error*1
C:\MyJunc     |  \\Sv2\T_Dir    |  *** Error - Must point local ***
              |                 |
\\Svr\MyLink  |  \\Sv2\T_Dir    |  Error*1
\\Svr\MyJunc  |  \\Sv2\T_Dir    |  *** Must create link using target device ***

Lỗi * 1 - Nếu bạn bỏ chặn quyền truy cập vào các liên kết tượng trưng từ xa trên máy cục bộ của mình, thì điều này sẽ hoạt động .. nhưng chỉ trên máy cục bộ nơi nó được bỏ chặn


3
Nó thật quái dị. Ngay cả các liên kết tượng trưng tương đối không hoạt động từ xa. Ví dụ, tôi tạo một thư mục d:\_tmp\data. Tạo liên kết như vậy : d:\_tmp>mklink /d data-link data. Người dùng từ xa có toàn quyền truy cập d:\_tmpvà tất cả các thư mục con của nó NHƯNG anh ta sẽ vẫn không thể mở d:\_tmp\data-link.
Nux

4
Đó là bởi vì khi một liên kết tượng trưng được đánh giá phía máy khách, nó sẽ trỏ đến dữ liệu d: \ _ tmp \ trên máy khách chứ không phải máy chủ.
apraetor

Tôi nghĩ lý do tại sao nó kỳ lạ là rõ ràng. Nhưng tôi đồng ý với @Nux rằng nó thật kỳ lạ, ít nhất là trong trường hợp liên kết tương đối.
Jon Coombs

Complex talk hurts brain -- I like chartsTôi thích câu này, và biểu đồ cũng vậy.
Luke

46

Các liên kết tượng trưng có nhiều chức năng hơn, trong khi các mối nối dường như là một tính năng cũ vì những hạn chế của chúng, nhưng ý nghĩa bảo mật của những hạn chế này đặc biệt là lý do tại sao một mối nối có thể được ưa thích hơn một liên kết tượng trưng. Nhắm mục tiêu từ xa làm cho các liên kết tượng trưng có nhiều chức năng hơn, nhưng cũng làm tăng hồ sơ bảo mật của chúng, trong khi các mối nối có thể được coi là an toàn hơn vì chúng bị ràng buộc với các đường dẫn cục bộ . Vì vậy, nếu bạn muốn có một liên kết cục bộ và có thể sống với một đường dẫn tuyệt đối, có lẽ bạn nên sử dụng một đường giao nhau; mặt khác, hãy xem xét một liên kết tượng trưng cho các khả năng được thêm vào của nó.

nhập mô tả hình ảnh ở đây

** Tuyên bố về sự khác biệt về tốc độ / độ phức tạp xuất phát từ một tuyên bố chưa được xác minh trong mục nhập Wikipedia về các điểm lặp lại NTFS (đọc tốt). *


So sánh liên kết NTFS khác

Dưới đây là một số so sánh khác về chủ đề này, nhưng chúng có thể gây hiểu nhầm khi xem xét các mối nối vì chúng không liệt kê các lợi ích tôi liệt kê ở trên.

Lấy từ đây (đọc giới thiệu tốt)

nhập mô tả hình ảnh ở đây

Từ trang SS64 trên MKLink

nhập mô tả hình ảnh ở đây


Nhận xét về thuật ngữ

Các mối nối là các liên kết tượng trưng

Các mối nối và liên kết tượng trưng thực sự đang làm điều tương tự theo cùng một cách (điểm lặp lại), ngoài những khác biệt đã nói ở trên về cách chúng được xử lý. Trên thực tế, về mặt kỹ thuật, Giao lộ là một liên kết tượng trưng và đôi khi tài liệu có thể gọi một Liên kết là một liên kết tượng trưng, như trường hợp ở đây . Vì vậy, đó chỉ là điều cần lưu ý về thuật ngữ.

NTFS

Mặc dù OP chỉ định điều này, nhưng đáng để chỉ ra rằng "liên kết tượng trưng" là một thuật ngữ rất chung chung không dành riêng cho NTFS. Vì vậy, để cụ thể, so sánh này là về Liên kết NTFS so với Liên kết tượng trưng NTFS.


3
Bất cứ ai cũng kiểm tra tốc độ xử lý của mối nối và liên kết tượng trưng?
1000Gbps

Biểu đồ ưu / nhược điểm là vô cùng hữu ích, cảm ơn bạn!
GordonM
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.