MKLINK vs. Junction.exe

27

SysInternals memiliki program junction.exe yang menciptakan persimpangan (alias. Poin reparse , alias. Symlinks) di Windows.

Namun, Windows juga dilengkapi dengan mklink yang tampaknya melakukan hal yang sama.

Apakah ada perbedaan yang signifikan?

Saya cenderung percaya bahwa jika SysInternals memiliki program mereka sendiri, mereka melihat kekurangan dalam program standar MKLink.

kasar
sumber
5
Junctionditerbitkan pada September 2010, menurut halaman tertaut. Demikian juga, halaman yang ditautkan untuk MKLINKmemiliki tanggal publikasi pada April 2012. Itu tampaknya sangat menunjukkan bahwa Junctionitu dibuat sebelum mklinkdieksekusi ditambahkan ke Windows. (Saya belum menggali lebih jauh ketika masing-masing awalnya muncul, maka komentar daripada jawaban lengkap. Jika seseorang ingin memperluas ini dan membuat jawaban yang tepat, jadilah tamu saya.)
sebuah CVn
Ups! Saya melewatkan itu. Tampaknya Junction mklink pra-tanggal. Terima kasih.
abelenky

Jawaban:

41

Perbandingan

junctionProgram Mark Russinovich dirancang dengan tujuan khusus: membuat (dan menghapus) titik persimpangan. Itu dipertahankan selama bertahun-tahun, tetapi sejauh ini tidak ada fitur baru yang ditambahkan. Versi terbaru dirilis pada 4 Juli 2016.

Adapun mklink, itu adalah perintah bawaan yang tersedia di Windows Vista dan yang lebih baru. Itu dapat membuat tautan keras, titik persimpangan, dan tautan simbolik. Fungsi penghapusan tertentu tidak disediakan; Anda cukup menggunakan perintah delatau rd, tergantung pada apakah masing-masing tautan menunjuk ke suatu file atau direktori.


Sedikit sejarah

Sebelum Vista, sistem operasi Windows tidak menyediakan cara untuk membuat titik persimpangan di luar kotak: Anda juga harus mendapatkan salinan Resource Kit resmi , menggunakan program pihak ketiga, atau menulis sendiri.

2000

Versi pertama junctionalat dirilis. Mengutip situs web resmi:

Windows 2000 dan yang lebih tinggi mendukung tautan simbolik direktori, di mana direktori berfungsi sebagai tautan simbolik ke direktori lain di komputer. [...]

Sayangnya, Windows tidak memiliki alat untuk membuat persimpangan — Anda harus membeli Kit Sumber Daya Win2K, yang dilengkapi dengan linkdprogram untuk membuat persimpangan. Karena itu saya memutuskan untuk menulis alat saya sendiri persimpangan: Junction .

Sumber: Persimpangan

2005-06

The mklinkperintah diperkenalkan dengan Windows Vista selama fase beta awal.

Itu tersedia sejak Beta 1 resmi dikirim pada 27 Juli 2005. Awalnya itu hanya bisa membuat tautan simbolis dan tautan keras; kemampuan untuk membuat titik persimpangan datang kemudian dengan Community Technology Preview (CTP) dirilis pada 19 Desember 2005.

Rupanya perintah itu sama sekali tidak diketahui sampai beberapa waktu kemudian pada tahun 2006, ketika itu pertama kali diungkapkan. Inilah referensi paling awal yang dapat saya temukan:

Anda dapat membuat tautan simbolis di Windows Vista sekarang.

C:\test>ver

Microsoft Windows [Version 6.0.5365]

C:\test>mklink
Creates a symbolic link.

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

[...]

Sumber: Tautan simbolik di Windows Vista

Juga:

Malcolm [MSFT] (Ahli):
T: Apakah ada cara yang sangat mudah untuk membuat symlink?
A: Buka CMD, dan ketik 'mklink'. Alat ini akan memungkinkan Anda untuk membuat persimpangan, hardlink, dan tautan simbolik.

Sumber: Transkripsi Obrolan Beta NTFS (12 Juli 2006)


Informasi tambahan

File atau direktori dapat berisi titik reparse, yang merupakan kumpulan data yang ditentukan pengguna. Format data ini dipahami oleh aplikasi yang menyimpan data, dan filter sistem file, yang Anda instal untuk menginterpretasikan data dan memproses file.

Sebagai contoh, titik reparse digunakan untuk mengimplementasikan tautan sistem file NTFS dan Microsoft Remote Storage Server (RSS).

Sumber: Poin Reparse

Ada tiga jenis tautan file yang didukung dalam sistem file NTFS: tautan keras, persimpangan, dan tautan simbolik.

Sumber: Tautan Keras dan Persimpangan

Tautan keras

Hard link adalah representasi sistem file dari suatu file dimana lebih dari satu jalur mereferensikan satu file dalam volume yang sama. [...] Setiap perubahan pada file itu dapat langsung dilihat oleh aplikasi yang mengaksesnya melalui tautan keras yang merujuknya. Namun, ukuran entri direktori dan informasi atribut diperbarui hanya untuk tautan yang digunakan untuk melakukan perubahan.

Sumber: Tautan Keras dan Persimpangan

Persimpangan

Persimpangan (juga disebut tautan lunak) berbeda dari tautan keras karena objek penyimpanan yang dirujuknya adalah direktori yang terpisah, dan persimpangan dapat menghubungkan direktori yang terletak di volume lokal yang berbeda di komputer yang sama.

Sumber: Tautan Keras dan Persimpangan

Persimpangan poin hanya dapat menautkan ke direktori pada volume lokal; titik persimpangan ke berbagi jarak jauh tidak didukung.

Sumber: titik persimpangan NTFS

Tautan simbolik

Tautan simbolik adalah objek sistem file yang menunjuk ke objek sistem file lain. Objek yang ditunjuk disebut target.

Tautan simbol bersifat transparan bagi pengguna; tautan muncul sebagai file atau direktori normal, dan dapat ditindaklanjuti oleh pengguna atau aplikasi dengan cara yang persis sama.

Sumber: Tautan Simbolik

[Symbolic links] diperkenalkan dengan modifikasi yang dibuat pada sistem file NTFS dengan Windows Vista , tetapi tersedia melalui driver filter untuk Windows XP .

Tidak seperti titik persimpangan NTFS (tersedia sejak Windows 2000), tautan simbolik juga dapat mengarah ke file atau jalur jaringan SMB jarak jauh . Sementara titik persimpangan NTFS hanya mendukung jalur absolut pada drive lokal, tautan simbolis NTFS memungkinkan penautan menggunakan jalur relatif.

Pengaturan keamanan default di Windows Vista / Windows 7 melarang administrator yang tidak ditinggikan dan semua yang bukan administrator membuat tautan simbolik.

Sumber: tautan simbolis NTFS

Bacaan lebih lanjut

and31415
sumber
Jika Anda akan membuat jawaban yang jauh lebih mendetail daripada jawaban saya, Anda mungkin juga menyebutkan bahwa NTFS Reparse Points adalah cita rasa lain.
paradroid
(mengacu pada Hard Links, untuk mengklarifikasi)
paradroid
Jawaban berkualitas murni.
sshow
2
NB: Ada tautan simbolik "file" (dibuat dengan polos mklinkapa pun jenis targetnya) dan ada tautan simbolik "direktori" (dibuat oleh mklink /d). Yang terbaik adalah membuat jenis tautan yang tepat untuk target.
kbolino
Saya ingin tahu mengapa junction.exe diperbarui pada tahun 2016 dan mengapa mereka terus mengirimkannya dengan SysInternals? Apakah mereka menentang penodaan? Kalau dipikir-pikir, ya mereka ... Mungkin setengah dari alat-alat itu memiliki penggantian yang cukup di Windows. Jawaban terinci yang luar biasa.
Adam Plocher
2

Seperti yang sudah disebutkan di komentar, junction.exekeluar sebelum Vista / Winserver 2008, yang datang dengan mklinkperintah.

Oleh karena itu tidak ada gunanya menggunakannya pada Vista dan seterusnya. Versi Windows yang lebih tua dari Vista tidak lagi didukung.

Juga, junction.exetidak mendukung NTFS Symbolic Links (hanya NTFS Junctions ), yang diperkenalkan dengan Vista / WinServer 2008 dan mlinkperintahnya.

paradroid
sumber