2012-01-28 10 views
79

Ad un livello elevato, l'unica differenza evidente tra NTFS Junction Points e Symbolic Links è che le giunzioni possono essere solo le directory, mentre i collegamenti simbolici possono anche selezionare i file di destinazione.Qual è la differenza tra punti di giunzione NTFS e collegamenti simbolici?

Quali altre differenze esistono?

(nota, ho già visto this question e quello che sto cercando è un po 'diverso - a questa domanda è alla ricerca di una lista pro ei contro, sto cercando una serie di differenze tecniche)

risposta

33

i posti trovo la più utile per le differenze:

http://blogs.msdn.com/b/junfeng/archive/2006/04/15/576568.aspx

http://www.hanselman.com/blog/MoreOnVistaReparsePoints.aspx

postulato: Symlink è quello di Junction in Windows come Symlink è Hardlink in Unix.

http://en.wikipedia.org/wiki/Symbolic_link#Windows_7_.26_Vista_symbolic_link

Windows 7 e Windows Vista supporta i collegamenti simbolici per entrambi i file e le directory con l'utilità mklink riga di comando. A differenza dei punti di giunzione, un collegamento simbolico può anche puntare a un file o percorso di rete Server Message Block (SMB) remoto. Inoltre, l'implementazione del collegamento simbolico NTFS fornisce il supporto completo per i collegamenti tra file system. Tuttavia, la funzionalità che abilita i collegamenti simbolici tra host richiede che anche il sistema remoto li supporti, il che limita in modo efficace il loro supporto a Windows Vista e ai sistemi operativi Windows successivi.

http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-symbolic-links/

un collegamento simbolico, in quanto creato da Windows, è molto simile ad un bivio directory, ma a differenza di una giunzione di directory si può puntare a un file o di un file di rete remota o directory. L'obiettivo può essere definito come un percorso relativo alla posizione del collegamento simbolico o un percorso assoluto nel volume corrente o un altro. Si noti inoltre che i collegamenti simbolici ai file sono diversi dai collegamenti simbolici alle directory e che il target deve corrispondere alla definizione.

+1

Per informazioni specifiche su Windows 7: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365006(v=vs.85).aspx –

+10

La risposta accettata ha già tre anni, ma Vorrei sottolineare che i punti di giunzione NFTS non sono paragonabili ai collegamenti fissi in Unix, come implicito nel postulato citato. Questo dovrebbe essere ovvio, dal momento che un punto di giunzione non può fare riferimento a un file, ma un collegamento hard. NTFS supporta anche i collegamenti fisici (che sono diversi dai nodi) e quelli sono più o meno simili ai collegamenti di Unix. – elgonzo

+0

@elgonzo Totalmente d'accordo. AFAIK un collegamento hardware Unix può fare riferimento solo a un file, quindi non sembra affatto un nodo di directory NTFS. –

4

I collegamenti simbolici sono stati introdotti molto di recente in Windows: come da Vista.

I collegamenti simbolici non devono essere considerati un'alternativa alla tecnologia NTQ "Reparse Point" esistente.

Microsoft spiega che l'unico scopo dei collegamenti simbolici è quello di essere più compatibili con Unix.

MSDN: "I link simbolici sono stati progettati per aiutare nella migrazione e compatibilità delle applicazioni con UNIX Microsoft ha implementato i suoi legami simbolici di funzionare proprio come link UNIX.".

Vista è anche il firt OS per utilizzare i collegamenti per il proprio funzionamento. Per essere compatibile con i nomi delle cartelle precedenti, C:\Documents and Settings è ora un collegamento a C:\Users.

È interessante notare che, sebbene Vista introduca collegamenti simbolici, questo trucco "Documents and Settings" è in realtà una semplice giunzione vecchia.

+1

Questa risposta non dice nulla sulle differenze tra collegamenti simbolici e giunzioni. (In quanto tale, non penso che si applichi davvero a questa domanda) –

+0

Da Windows Vista in poi Il collegamento simbolico sostituisce Junctions (anche, come sappiamo, entrambi sono punti di analisi) – Aravind

14

Funzionalmente, in Windows, una volta creato, non c'è alcuna differenza reale. Tuttavia, ci sono differenze significative tra loro in ciò che possono fare. Le giunzioni possono essere utilizzate solo per la creazione di collegamenti a cartelle, sulla stessa unità o su unità diverse, ma solo se tali unità si trovano sul sistema locale (non è possibile creare un collegamento di giunzione a una cartella su una rete.) Collegamenti simbolici tuttavia, non hanno le stesse restrizioni. I collegamenti simbolici possono essere utilizzati per collegare a file o cartelle e tali file o cartelle possono trovarsi sullo stesso sistema (stessa unità o unità diverse) o su una condivisione di rete e possono fare uso di simboli di posizione relativi ("\\ system2 \ foldera \ file.txt "," d: \ foldera \ file.txt "," \\ system2 \ foldera "," d: \ foldera "o" d: \ foldera \ folderb .. "con il link risultante per gli ultimi 2 esempi sono la stessa posizione.) I simboli relativi alla posizione relativa possono essere ".", "..", la funzione relativa all'unità corrente (se l'unità corrente è c :, quindi specificare "\ tempa \ folderb" restituisce un collegamento a c: \ tempa \ folderb,) e la directory corrente relativa (se la directory corrente è d: \ foldera \ folderb, quindi specificando "d: file.txt" si ottiene un collegamento a d: \ foldera \ folderb \ file.txt.)

Per riassumere: Giunzioni I punti sono limitati alle cartelle solo sul sistema locale, mentre i collegamenti simbolici possono creare collegamenti a f vecchi o file accessibili tramite un percorso UNC o sul sistema locale con più versatilità nel modo in cui tali luoghi sono designati. I collegamenti simbolici sono fondamentalmente una sostituzione più versatile sia per i punti di giunzione che per gli hard link. Inoltre, i collegamenti simbolici sono compatibili con Unix e Linux durante la creazione di un collegamento percorso UNC multipiattaforma.

Speriamo che questo risponda alla tua domanda in modo soddisfacente. Modificato per correggere errori tipografici.

7

Link Shell Extension, http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html, è un ottimo strumento per la creazione e la visualizzazione di molti tipi di collegamenti. Ha anche una documentazione eccellente.

[In un'installazione completa, aggiunge una nuova scheda delle proprietà se si sta esaminando un collegamento avanzato. Inoltre aggiunge le frecce di sovrapposizione di icone per i vari tipi di collegamento: scorri fino alla sezione Domande frequenti se queste non vengono visualizzate; Windows supporta solo tredici sovrapposizioni; mostra una soluzione di registro. Un esempio della sua utilità informativa: tentare invano di ottenere i privilegi di una cartella, ma in realtà era un collegamento di giunzione fornito dal sistema, spesso utilizzato per scopi di compatibilità con le versioni precedenti di Windows.]

Giunzioni e simboli I collegamenti agiscono essenzialmente identicamente quando vengono creati per una directory su un sistema locale.

Tuttavia:

agiscono in modo diverso su una rete. Questo collegamento descrive questo comportamento: https://superuser.com/questions/343074/directory-junction-vs-directory-symbolic-link

Se si pensa a Collegamenti di giunzione come "scorciatoie che ingannano il sistema operativo in base alla posizione", si avrà una buona similitudine pratica del loro utilizzo e di cosa li infrange. La differenza principale è che se copi link simbolici o giunzioni, copia il bersaglio, piuttosto (come scorciatoie) semplicemente il file che contiene il puntatore. Come con le scorciatoie, è possibile eliminare collegamenti simbolici o di giunzione senza rimuovere i file/cartelle di destinazione. [Collegamenti reali, il file viene eliminato solo con la rimozione dell'ultimo collegamento, anche dal cestino. Osserva il tag delle proprietà in LSE per ciascuno di questi link per vedere il target o il conteggio dei riferimenti per i collegamenti permanenti.]

I collegamenti o le scorciatoie sono gli unici tipi di collegamento che possono essere spostati senza effetti collaterali come interruzioni o interruzioni. copiando l'intero obiettivo.Lo spostamento del target interrompe sempre i collegamenti, sebbene possano essere facilmente aggiornati nella scheda delle proprietà (mostrata con LSE) o ricreati, se complicato, con LSE.

La creazione di collegamenti simbolici richiede i privilegi di amministratore mentre i nodi no. Ciò, oltre all'ampio uso interno di sistemi operativi di Junctions, suggerisce che Windows li gestisce in modo intuitivo e atteso. [Fai attenzione agli effetti collaterali inaspettati delle cartelle di sistema (dall'esperienza con Win 10).]

[Alcune delle funzionalità specifiche di backup di Link Shell Extension sono estremamente utili: in breve, possono creare diversi tipi di strutture di collegamenti simbolici aggiornabili in cartelle standard per scopi di backup in sospeso.]

+0

puoi restringere la tua risposta? – manetsus

+0

Questa è un'ottima risposta .... restringere, perché ?? Questa è l'unica risposta che sembra provenire dalla conoscenza personale/esperienza, piuttosto che una sinossi su Google. – u8it

+0

E Link Shell Extension sembra un ottimo strumento. C'è anche una relativa utility leggera chiamata [ln.exe] (http://schinagl.priv.at/nt/ln/ln.html#deloreancopy) ... anche se non la usi, imparerai molto semplicemente leggendo la semplice guida per l'utente del sito. – u8it

7

Ho avuto l'impressione che gli svincoli fossero solo per ragioni legacy e che i collegamenti simbolici fossero complessivamente migliori (le cose appaiono in questo modo al valore nominale). Risulta, non è del tutto vero. Ci sono alcuni buoni motivi per usare una giunzione invece di un collegamento simbolico. La principale differenza deriva dalla sicurezza e dai percorsi locali e remoti. Sì, il targeting remoto rende i collegamenti simbolici più funzionali, ma alza anche il loro profilo di sicurezza. Quindi, se vuoi un collegamento locale e puoi vivere con un percorso assoluto, probabilmente stai meglio con un incrocio; altrimenti, considera un collegamento simbolico per le sue abilità aggiunte.

enter image description here

** L'affermazione di differenza di velocità/complessità deriva da una dichiarazione non verificata nel Wikipedia entry on NTFS reparse points (una buona lettura). *


Altri Confronti collegamento NTFS

Ecco alcuni altri confronti sull'argomento, ma questi possono essere fuorvianti quando si considerano le giunzioni perché non elencano i vantaggi elencati sopra.

Taken from here (una buona lettura introduttivo)

enter image description here

Da SS64 page on MKLink

enter image description here


Commenti sulla terminologia

giunzioni sono collegamenti simbolici

giunzioni e link simbolici sono davvero facendo la stessa cosa nello stesso modo (punti di analisi), a parte le differenze di cui sopra a come vengono trattati. In realtà, tecnicamente, una giunzione è un collegamento simbolico e talvolta la documentazione può chiamare una giunzione un collegamento simbolico, as is the case here. Quindi, questo è solo qualcosa di cui essere a conoscenza della terminologia.

NTFS

Anche se l'OP specifica questo, vale la pena di sottolineare che "link simbolico" è un termine molto generico che non è specifico per NTFS. Quindi, per essere precisi, questo confronto riguarda le giunzioni NTFS e i collegamenti simbolici NTFS.

Problemi correlati