Sự khác biệt giữa các liên kết cứng NTFS và các mối nối thư mục là gì?


79

Tiêu đề nói lên tất cả ... sự khác biệt là gì? Khi nào tôi sử dụng cái này và khi nào tôi sử dụng cái kia?

Đã thêm: Lưu ý rằng các điểm Nối , liên kết cứngliên kết tượng trưng (mềm) là ba điều riêng biệt trên NTFS.


2
Theo tài liệu của Microsoft, có ba loại khác nhau: Liên kết cứng: msdn.microsoft.com/en-us/l Library / aa365006% 28VS85% 29.aspx ; Ngã ba (liên kết mềm): msdn.microsoft.com/en-us/l Library / aa365006% 28VS85% 29.aspx ; Liên kết tượng trưng: msdn.microsoft.com/en-us/l Library / aa363878% 28VS85% 29.aspx .
Josip Medved

Câu trả lời:


33

Các tệp dữ liệu NTFS được lưu trữ với tất cả các thuộc tính của chúng dưới dạng "inode" với ID và tên tệp trỏ đến inode. Tất cả các tệp có một + liên kết cứng. một số công cụ có thể tạo thêm tên (liên kết cứng) trỏ đến cùng một nút, có bộ đếm số lượng tên trỏ đến nó. Nếu số về 0, HĐH sẽ xóa tệp, inode.

Các công cụ đặc biệt, như LN có thể tạo các tên tệp bổ sung trỏ đến các nút hiện có, sử dụng tên tệp trỏ đến chúng. Lưu ý rằng tất cả các thuộc tính tệp, bao gồm cả ngày và thời gian được lưu trữ bằng nút, không phải tên tệp.

(Thêm) liên kết cứng rất hữu ích khi bạn muốn các tên khác nhau trỏ đến cùng một dữ liệu, đọc hoặc viết. Họ tiết kiệm không gian và chi phí. Tuy nhiên, các chương trình clobber giả định các tên khác nhau trỏ đến dữ liệu khác nhau. ví dụ: nếu bạn thay thế các tham chiếu đến các tệp trùng lặp bằng các liên kết cứng thành một tệp duy nhất, thì bạn đã xóa bất kỳ bản sao lưu nào bạn có! Hệ điều hành windows là một chương trình giả định các tên khác nhau trỏ đến các bộ bit khác nhau.

Liên kết cứng phải trên cùng một khối lượng vật lý và logic.

Chúng rất hữu ích cho:

  • giảm độ dài đường dẫn vì Windows chỉ hỗ trợ 256 ký tự hoặc hơn.

  • giảm dung lượng lưu trữ của các tệp dữ liệu trùng lặp - ví dụ: bạn có thể có nhiều bản sao lưu của một phân vùng có nhiều cây thư mục hoàn chỉnh, nhưng với các liên kết cứng cho các tệp không thay đổi kể từ lần sao lưu trước.

Điểm giao nhau lộn xộn hơn và sử dụng Điểm lặp lại (mà tôi không hiểu). Chúng có thể trỏ đến các khối vật lý hoặc logic khác nhau nhưng chúng phải ở trên cùng một máy tính. Chúng rõ ràng có thể được sử dụng như symlink cho các thư mục, cho phép một tên thứ hai cho cùng một đích, nhưng giới hạn trong một máy tính, thay vì chỉ một âm lượng.

Hữu ích để giảm độ dài đường dẫn hoặc đơn giản hóa làm việc với một số chương trình với tên thư mục được mã hóa cứng.

Cùng cảnh giác, quá! Nhiều chương trình giả định tên khác nhau = các tệp khác nhau.

Và sau đó là các liên kết tượng trưng (có thể đi qua các mạng), các phím tắt và PIF và .....

Ngoài ra một số thông tin từ chính Microsoft :

Về cơ bản, họ nói rằng chỉ sử dụng các liên kết cứng cho các tệp trong cùng một ổ đĩa (ký tự ổ đĩa) và các điểm nối chỉ cho các thư mục trên cùng một máy tính (chúng có thể trải rộng trên các ổ đĩa cục bộ khác nhau).


1
Liên kết tượng trưng có hoạt động ở cấp độ đĩa cứng (NTFS) hay trên khái niệm cấp hệ điều hành Windows?
IsmailS

48

Định nghĩa nhanh:

Liên kết tượng trưng: Liên kết đến một tệp hoặc thư mục trên cùng một âm lượng hoặc khác nhau (ký tự ổ đĩa) hoặc thậm chí đến một tệp hoặc thư mục từ xa (sử dụng UNC trong đường dẫn của nó).

Liên kết cứng: Chỉ một liên kết đến một tệp trên cùng một ổ đĩa (ký tự ổ đĩa). Mỗi tệp (dữ liệu của tệp) có ít nhất 1 liên kết cứng (tên tệp). Xóa tất cả các liên kết cứng sẽ xóa tập tin một cách hiệu quả.

Nối: Một liên kết đến một thư mục trên cùng một ổ đĩa hoặc khác nhau (ký tự ổ đĩa) nhưng không liên kết đến một thư mục từ xa.


Chi tiết:

Giả sử bạn đang làm việc với các khối NTFS trong Windows Vista / 7, bạn có thể sử dụng công cụ dòng lệnh MKLINK để tạo cả ba loại Liên kết:

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

        /D      Creates a directory symbolic link.  Default is 
                a file symbolic link.

        /H      Creates a hard link instead of a symbolic link.

        /J      Creates a Directory Junction.

        Link    specifies the new symbolic link name.

        Target  specifies the path (relative or absolute) that 
                the new link refers to.

Liên kết tượng trưng : Liên kết tượng trưng là một đối tượng hệ thống tệp trỏ đến một đối tượng hệ thống tệp khác (ví dụ: tệp / thư mục).

  • MKLINKcó thể được sử dụng để tạo liên kết tượng trưng. Sử dụng /Dtham số tạo ra một liên kết tượng trưng thư mục. MKLINK không kiểm tra xem mục tiêu là tệp hay thư mục hay thậm chí nếu mục tiêu tồn tại! Điều này có nghĩa là bạn có khả năng có thể tạo các liên kết không hợp lệ như liên kết tượng trưng thư mục đến tệp hoặc liên kết tượng trưng đến tệp / thư mục không tồn tại.

  • Liên kết tượng trưng có thể là liên kết tuyệt đối hoặc tương đối. Liên kết tuyệt đối là các liên kết chỉ định từng phần của tên đường dẫn trong khi các liên kết tương đối được xác định liên quan đến vị trí của các chỉ định liên kết tương đối trong một đường dẫn cụ thể.

  • Các liên kết tượng trưng tuyệt đối có thể trỏ đến các tệp / thư mục trên cùng một khối lượng hoặc khác nhau, cũng như, đến một tệp hoặc thư mục từ xa bằng cách sử dụng đường dẫn UNC. Tuy nhiên, các liên kết tượng trưng tương đối được giới hạn trong một khối lượng duy nhất.

  • Đặc quyền nâng cao được yêu cầu để tạo liên kết tượng trưng mặc dù một khi đã tạo đặc quyền nâng cao thì không bắt buộc phải xóa liên kết.

Liên kết cứng : Liên kết cứng là biểu diễn hệ thống tệp của một tệp mà nhiều hơn một đường dẫn tham chiếu một tệp.

  • MKLINKcho phép tạo các liên kết cứng (chỉ sử dụng /Htham số) của các tệp (không phải thư mục). Một liên kết cứng chỉ có thể được tạo ra của một tập tin trong cùng một khối lượng.

  • Một tệp có nhiều liên kết cứng chỉ thực sự bị xóa khi tất cả các liên kết cứng bị xóa tức là số lượng liên kết đạt đến không. Vì vậy, thực sự mỗi tệp bạn tạo có ít nhất một liên kết cứng cho dù bạn có sử dụng MKLINKhay không.

  • Mọi thay đổi đối với tệp đó sẽ hiển thị ngay lập tức đối với các ứng dụng truy cập tệp đó thông qua các liên kết cứng tham chiếu tệp đó. Tuy nhiên, kích thước mục nhập và thông tin thuộc tính chỉ được cập nhật cho liên kết thông qua đó thay đổi được thực hiện.

  • Lưu ý rằng các thuộc tính trên tệp được phản ánh trong mọi liên kết cứng đến tệp đó và các thay đổi đối với các thuộc tính của tệp đó được truyền tới tất cả các liên kết cứng. Ví dụ: nếu bạn hủy đặt thuộc tính chỉ đọc trên một liên kết cứng để xóa liên kết cứng cụ thể đó và có nhiều liên kết cứng đến tệp thực tế, thì bạn sẽ cần phải đặt lại thuộc tính chỉ đọc trên tệp từ một trong các liên kết cứng còn lại để đưa tệp và tất cả các liên kết cứng còn lại trở về trạng thái chỉ đọc.

Các mối nối : Một đường nối (còn được gọi là liên kết mềm) khác với một liên kết cứng ở chỗ các đối tượng lưu trữ mà nó tham chiếu là các thư mục riêng biệt và một đường nối có thể liên kết các thư mục nằm trên các ổ đĩa cục bộ khác nhau trên cùng một máy tính. Mặt khác, các mối nối hoạt động giống hệt với các liên kết cứng. Các mối nối được thực hiện thông qua các điểm lặp lại.

  • MKLINKcho phép tạo một đường nối (sử dụng /Jtham số) của một thư mục (và thậm chí các tệp mặc dù điều này có thể được coi là một liên kết không hợp lệ).

  • Một điểm nối có thể được coi là liên kết cứng tương đương với một liên kết tượng trưng đến một thư mục. Một liên kết nối không thể được tạo ra một thư mục từ xa nhưng có thể được tạo đến một thư mục có cùng âm lượng / khác nhau.


Người giới thiệu:

[1] Liên kết và liên kết cứng: https://msdn.microsoft.com/en-us/l Library / windows / desktop / aa365006% 28v = vs85% 29.aspx

[2] Tạo các liên kết tượng trưng: https://msdn.microsoft.com/en-us/l Library / windows / desktop / aa363878% 28v = vs85% 29.aspx

[3] "đường nối thư mục" vs "liên kết tượng trưng thư mục"?


9

Liên kết cứng chỉ là một tên khác cho một tập tin. Nếu bạn có tệp có tên A.txt và bạn có liên kết L.txt, khi bạn xóa A.txt, bạn vẫn sẽ có quyền truy cập vào dữ liệu của nó thông qua L.txt. Chỉ khi cả hai bị xóa tập tin đã biến mất.

Mặt khác, bạn có một cái gọi là liên kết mềm (đường giao nhau nếu đó là thư mục hoặc liên kết tượng trưng nếu là tệp). Trong trường hợp đó, khi bạn xóa A.txt, tập tin thực sự biến mất. Xóa L.txt không ảnh hưởng gì đến tập tin.

Liên kết cứng chỉ có thể được sử dụng trên cùng một phân vùng vì tệp gốc và liên kết mềm có thể được sử dụng trên các phân vùng.

Tệp PS và thư mục hầu hết có thể hoán đổi cho nhau theo như NTFS.


3
Xin lỗi, các mối nối và liên kết mềm không giống với NTFS. :(
Vilx-

2
msdn.microsoft.com/en-us/l Library / aa365006% 28VS85% 29.aspx Trích dẫn: "Một ngã ba (còn gọi là liên kết mềm)"
Josip Medved

3
Tuy nhiên, có sự phân biệt rõ hơn giữa đường giao nhau (còn gọi là liên kết mềm) và liên kết tượng trưng, ​​nhưng tôi chưa đi sâu vào chi tiết ở đây. Đối với những người quan tâm, chi tiết có thể được tìm thấy trong tài liệu Windows tại msdn.microsoft.com/en-us/l Library / aa365006% 28VS85% 29.aspxmsdn.microsoft.com/en-us/l Library / aa363878% 28VS. 85% 29.aspx .
Josip Medved

1
Kể từ Windows Vista, có cả các mối nối NTFS (chỉ có thể được trỏ đến các thư mục) và các liên kết tượng trưng kiểu Unix (có thể chỉ ra bất cứ thứ gì theo nghĩa đen).
grawity

0

Liên kết cứng: chỉ hoạt động cho cùng một khối lượng.
Ngã ba: bất kỳ khối lượng cục bộ
Tượng trưng: khối lượng cục bộ hoặc đường dẫn UNC

| Link Type     | Same Volume | Different Volume | UNC Path |
|---------------|-------------|------------------|----------|
| Hard link     | Yes         | No               | No       |
| Junction      | Yes         | Yes              | No       |
| Symbolic link | Yes         | Yes              | Yes      |

Phần thưởng

Windows tạo các mối nối và các liên kết tượng trưng cho các mục đích AppCompat; cho những ứng dụng viết kém mà nghĩ:

  • C: \ Người dùng \ Tất cả người dùng
  • C: \ Users \ Người dùng mặc định

có giá trị.

C:\Users>dir /as

 Directory of C:\Users

04/11/2018  07:45 PM    <SYMLINKD>     All Users [C:\ProgramData]
04/11/2018  07:45 PM    <JUNCTION>     Default User [C:\Users\Default]

Điều tương tự cũng đúng trong thư mục hồ sơ người dùng, đối với các ứng dụng mong đợi các thư mục thời đại Windows XP vẫn tồn tại cho đến ngày nay:

| Folder           | Type       | Target                                                           |
|------------------|------------|------------------------------------------------------------------|    | Application Data | <JUNCTION> | C:\Users\Ian\AppData\Roaming                                     |
| Cookies          | <JUNCTION> | C:\Users\Ian\AppData\Local\Microsoft\Windows\INetCookies         |
| Local Settings   | <JUNCTION> | C:\Users\Ian\AppData\Local                                       |
| My Documents     | <JUNCTION> | C:\Users\Ian\Documents                                           |
| NetHood          | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Network Shortcuts |
| PrintHood        | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Printer Shortcuts |
| Recent           | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Recent            |
| SendTo           | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\SendTo            |
| Start Menu       | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Start Menu        |
| Templates        | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Templates         |

2
và thậm chí còn điên rồ hơn khi cài đặt các cửa sổ không phải tiếng Anh khi bạn nhận được NHIỀU liên kết / liên kết, vì một số có thể hoặc không biết Windows lên đến XP thực sự có các tên miền cục bộ, có thể dễ dàng làm rối các tập lệnh hoặc hướng dẫn được tạo cho các Ngôn ngữ khác. Vista đã giết nó và thay vào đó sử dụng các tên HIỂN THỊ cục bộ, do đó, các đường dẫn thực tế giống nhau trong tất cả các ngôn ngữ, nhưng do đó các cửa sổ được bản địa hóa thậm chí còn có nhiều liên kết trong chúng hơn các tiếng Anh
My1

-1

Để trả lời theo chương trình:

Liên kết cứng: shared_ptr <>. Luôn luôn tồn tại.

Liên kết mềm: yếu_ptr <>. Chỉ có hiệu lực khi một liên kết cứng khác tồn tại.


Đó là một điều dễ dàng. :) Câu hỏi là về Hard Links vs Jifts. ;)
Vilx-
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.