MKLINK vs. Junction.exe


27

SysInternals ha un programma junction.exe che crea giunzioni (ovvero punti di analisi , ovvero collegamenti simbolici) in Windows.

Tuttavia, Windows include anche un mklink che sembra fare la stessa cosa.

C'è una differenza significativa?

Tendo a credere che se SysInternals ha il proprio programma, hanno riscontrato una carenza nel programma MKLink standard.


5
Junctionè stato pubblicato nel settembre 2010, secondo la pagina collegata. Allo stesso modo, la pagina collegata per MKLINKha una data di pubblicazione nell'aprile 2012. Ciò sembrerebbe indicare fortemente che è Junctionstato creato prima che l' mklinkeseguibile fosse aggiunto a Windows. (Non ho approfondito ulteriormente quando apparve originariamente ciascuno, quindi un commento piuttosto che una risposta completa. Se qualcuno vuole approfondire questo e creare una risposta adeguata, sii mio ospite.)
Un CVn del

Oops! Ho perso questo. Sembra che Junction sia precedente a mklink. Grazie.
abelenky,

Risposte:


41

Confronto

Il junctionprogramma di Mark Russinovich è stato progettato con un obiettivo specifico in mente: creare (ed eliminare) punti di giunzione. È stato mantenuto nel corso degli anni, ma finora non sono state aggiunte nuove funzionalità. L'ultima versione è stata rilasciata il 4 luglio 2016.

Per quanto riguarda mklink, è un comando integrato disponibile in Windows Vista e versioni successive. Può creare collegamenti, punti di giunzione e collegamenti simbolici. Non è disponibile una funzione di eliminazione specifica; puoi semplicemente usare i comandi delo rd, a seconda che il collegamento punti a un file o una directory, rispettivamente.


Un po 'di storia

Prima di Vista, i sistemi operativi Windows non fornivano un modo per creare punti di giunzione pronti all'uso : era necessario ottenere una copia del Resource Kit ufficiale , utilizzare un programma di terze parti o scriverne uno da soli.

2000

La prima versione dello junctionstrumento è stata rilasciata. Citando il sito ufficiale:

Windows 2000 e versioni successive supportano collegamenti simbolici di directory, in cui una directory funge da collegamento simbolico a un'altra directory sul computer. [...]

Sfortunatamente, Windows non include strumenti per la creazione di giunzioni: è necessario acquistare il Resource Kit Win2K, fornito con il linkdprogramma per la creazione di giunzioni. Ho quindi deciso di scrivere il mio strumento per la creazione di giunzioni : Junction .

Fonte: giunzione

2005-06

Il mklinkcomando è stato introdotto con Windows Vista durante la prima fase beta.

Era disponibile dalla Beta 1 ufficiale spedita il 27 luglio 2005. Inizialmente poteva solo creare collegamenti simbolici e collegamenti reali; la possibilità di creare punti di giunzione è arrivata in seguito con la Community Technology Preview (CTP) rilasciata il 19 dicembre 2005.

Apparentemente il comando è passato completamente inosservato fino a qualche tempo dopo, nel 2006, quando è stato rivelato per la prima volta. Ecco il primo riferimento che sono riuscito a trovare:

Ora puoi creare un collegamento simbolico in Windows Vista.

C:\test>ver

Microsoft Windows [Version 6.0.5365]

C:\test>mklink
Creates a symbolic link.

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

[...]

Fonte: collegamento simbolico in Windows Vista

Anche:

Malcolm [MSFT] (Esperto):
D: Esiste un modo davvero semplice per creare un collegamento simbolico?
A: Apri CMD e digita 'mklink'. Questo strumento ti permetterà di creare giunzioni, hardlink e link simbolici.

Fonte: trascrizione chat beta NTFS (12 luglio 2006)


Informazioni aggiuntive

Un file o una directory può contenere un punto di analisi, che è una raccolta di dati definiti dall'utente. Il formato di questi dati è compreso dall'applicazione che archivia i dati e da un filtro del file system, che si installa per interpretare i dati ed elaborare il file.

Ad esempio, i punti di analisi vengono utilizzati per implementare collegamenti al file system NTFS e Microsoft Remote Storage Server (RSS).

Fonte: punti di analisi

Esistono tre tipi di collegamenti ai file supportati nel file system NTFS: collegamenti fissi, giunzioni e collegamenti simbolici.

Fonte: hard link e incroci

Collegamenti reali

Un collegamento reale è la rappresentazione del file system di un file con cui più di un percorso fa riferimento a un singolo file nello stesso volume. [...] Eventuali modifiche a quel file sono immediatamente visibili alle applicazioni che accedono ad esso attraverso i collegamenti reali che lo fanno riferimento. Tuttavia, le dimensioni della voce della directory e le informazioni sugli attributi vengono aggiornate solo per il collegamento attraverso il quale è stata apportata la modifica.

Fonte: hard link e incroci

giunzioni

Una giunzione (anche chiamata soft link) differisce da una hard link in quanto gli oggetti di archiviazione a cui fa riferimento sono directory separate e una giunzione può collegare directory situate su diversi volumi locali sullo stesso computer.

Fonte: hard link e incroci

I punti di giunzione possono essere collegati solo alle directory su un volume locale; i punti di giunzione con le condivisioni remote non sono supportati.

Fonte: punto di giunzione NTFS

Collegamenti simbolici

Un collegamento simbolico è un oggetto file system che punta a un altro oggetto file system. L'oggetto a cui si punta è chiamato target.

I collegamenti simbolici sono trasparenti per gli utenti; i collegamenti appaiono come normali file o directory e possono essere gestiti dall'utente o dall'applicazione esattamente nello stesso modo.

Fonte: collegamenti simbolici

[Link simbolici] sono stati introdotti con le modifiche apportate al file system NTFS con Windows Vista , ma disponibili tramite i driver di filtro per Windows XP .

A differenza di un punto di giunzione NTFS (disponibile da Windows 2000), un collegamento simbolico può anche indicare un file o un percorso di rete SMB remoto . Mentre i punti di giunzione NTFS supportano solo percorsi assoluti su unità locali, i collegamenti simbolici NTFS consentono il collegamento mediante percorsi relativi.

Le impostazioni di sicurezza predefinite in Windows Vista / Windows 7 impediscono agli amministratori non elevati e a tutti i non amministratori di creare collegamenti simbolici.

Fonte: collegamento simbolico NTFS

Ulteriori letture


Se hai intenzione di dare una risposta molto più dettagliata della mia, potresti anche menzionare che i punti di analisi NTFS sono un altro aspetto .
paradroid

(riferendosi a Hard Link, per chiarire)
paradroid

Risposta di pura qualità.
mostra

2
NB: Esistono collegamenti simbolici "file" (creati da plain mklinkindipendentemente dal tipo di destinazione) e esistono collegamenti simbolici "directory" (creati da mklink /d). È meglio creare il giusto tipo di collegamento per l'obiettivo.
Kbolino,

Sono curioso di sapere perché junction.exe è stato aggiornato nel 2016 e perché continuano a spedirlo con SysInternals? Sono contro la depecrazione? Vieni a pensarci bene, sì, lo sono ... Probabilmente metà di quegli strumenti ha sufficienti sostituzioni in Windows. Ottima risposta dettagliata.
Adam Plocher,

2

Come già accennato nei commenti, junction.exeè uscito prima di Vista / Winserver 2008, fornito con il mklinkcomando.

Pertanto non ha senso utilizzarlo su Vista in poi. Le versioni di Windows precedenti a Vista non sono più supportate comunque.

Inoltre, junction.exenon supporta i collegamenti simbolici NTFS (solo giunzioni NTFS ), introdotti con Vista / WinServer 2008 e il mlinkcomando.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.