Quali sono i vari tipi di collegamento in Windows? Come li creo?


Risposte:


57

Si noti che l'unica sfortunata differenza è che sono necessari i diritti di amministratore per creare collegamenti simbolici. IE, hai bisogno di un prompt elevato. (Una soluzione alternativa è SeCreateSymbolicLinkPrivilege può essere concesso agli utenti normali tramite secpol.msc.)

Nota terminologica: le scorciatoie di Windows non sono chiamate "symlink"; sono collegamenti shell , poiché sono semplicemente file che la shell di Windows Explorer tratta in modo speciale.


Symlink: come posso crearli sul file system NTFS?

Windows Vista e versioni successive supportano collegamenti simbolici in stile Unix su filesystem NTFS. Ricorda che seguono anche la stessa risoluzione del percorso: i collegamenti relativi vengono creati in relazione alla posizione del collegamento, non alla directory corrente. Le persone spesso lo dimenticano. Possono anche essere implementati usando un percorso assoluto; Ad esempio c: \ windows \ system32 anziché \ system32 (che passa a una directory system32 collegata alla posizione del collegamento).
I collegamenti simbolici vengono implementati utilizzando punti di analisi e generalmente hanno lo stesso comportamento dei collegamenti simbolici Unix.

Per i file è possibile eseguire:

mklink  linkname  targetpath

Per le directory è possibile eseguire:

mklink / d linkname  TargetPath

Hardlink: come posso crearli sui file system NTFS?

Tutte le versioni di Windows NT supportano hard link in stile Unix su filesystem NTFS. Utilizzando mklink su Vista e versioni successive:

mklink / h linkname  TargetPath

Per Windows 2000 e XP, utilizzare fsutil.

fsutil hardlink creare linkname  TargetPath

Funzionano allo stesso modo dei collegamenti fissi Unix: più voci della tabella file puntano allo stesso inode .


Giunzioni di directory: come le creo sui file system NTFS?

Windows 2000 e versioni successive supportano giunzioni di directory su filesystem NTFS. Sono diversi dai collegamenti simbolici in quanto sono sempre assoluti e puntano solo su directory, mai su file.

mklink / j linkname  TargetPath

Nelle versioni che non dispongono mklink, scaricare junctionda Sysinternals:

giunzione  linkname  TargetPath

Le giunzioni vengono implementate utilizzando punti di analisi .


Come posso montare un volume usando un punto di analisi in Windows?

Per completezza, su Windows 2000 e versioni successive , i punti di analisi possono anche puntare a volumi , con conseguenti montaggi persistenti su disco in stile Unix :

mountvol  mountpoint \\? \ Volume { volumeguid }

I GUID del volume sono elencati da mountvol; sono statici ma solo all'interno della stessa macchina.


C'è un modo per farlo in Esplora risorse?

Sì, è possibile utilizzare l'estensione Shell Link Shell Extension che semplifica la creazione dei collegamenti sopra descritti. Puoi trovare i download in fondo alla pagina .

Il file system NTFS implementato in NT4, Windows 2000, Windows XP, Windows XP64 e Windows7 supporta una funzione nota come hard link (di seguito indicata come Hardlink ). I collegamenti fissi offrono la possibilità di conservare una singola copia di un file e tuttavia farlo apparire in più cartelle (directory). Essi possono essere creati con il comando POSIX ln incluso nel Resource Kit di Windows, il fsutil utilità di comando incluso in Windows XP o la mia linea di comando ln.exe utilità.

L'estensione consente all'utente di selezionare uno o più file o cartelle, quindi utilizzando il mouse, completare la creazione dei collegamenti richiesti: collegamenti fissi, giunzioni o collegamenti simbolici o nel caso di cartelle per creare cloni costituiti da collegamenti fissi o simbolici. LSE è supportato su tutte le versioni di Windows che supportano NTFS versione 5.0 o successive, inclusi Windows XP64 e Windows7. Hardlink, giunzioni e collegamenti simbolici NON sono supportati sui file system FAT, né il processo di clonazione e copia intelligente è supportato sui file system FAT.

La fonte può essere semplicemente selezionata usando un menu di scelta rapida.

E a seconda di ciò che hai scelto , fai clic con il pulsante destro del mouse su una cartella di destinazione e ottieni un menu con opzioni.

Ciò semplifica la creazione di collegamenti. Per una guida completa, leggere la documentazione LSE .

I download sono disponibili nella parte inferiore della loro pagina .

URL MSDN pertinenti:


40

In questa risposta cercherò di delineare quali sono i diversi tipi di collegamenti nella gestione delle directory e perché sono utili e quando potrebbero essere utilizzati. Quando si tenta di raggiungere una determinata organizzazione sui volumi di file, conoscere le diverse tipologie e crearle è una conoscenza preziosa.

Per informazioni su come è possibile creare un determinato collegamento, consultare la risposta di Grawity .

Che cos'è un collegamento?

Un collegamento è una relazione tra due entità; nel contesto della gestione delle directory, un collegamento può essere visto come una relazione tra le seguenti due entità:

  1. Tabella delle directory

    Questa tabella tiene traccia dei file e delle cartelle che risiedono in una cartella specifica.

    Una tabella di directory è un tipo speciale di file che rappresenta una directory (nota anche come cartella). Ogni file o directory al suo interno è rappresentato da una voce a 32 byte nella tabella. Ogni voce registra il nome, l'estensione, gli attributi (archivio, directory, nascosto, sola lettura, sistema e volume), la data e l'ora dell'ultima modifica, l'indirizzo del primo cluster dei dati del file / directory e infine la dimensione di il file / directory.

  2. Cluster di dati

    Più specificamente, il primo cluster del file o della directory.

    Un cluster è la quantità logica minima di spazio su disco che può essere allocata per contenere un file.

La particolarità di questa relazione è che consente di avere un solo cluster di dati ma molti collegamenti a quel cluster di dati, questo ci consente di mostrare i dati come presenti in più posizioni. Tuttavia, ci sono molti modi per farlo e ogni metodo ha i suoi effetti.

Per vedere da dove proviene questa radice, torniamo al passato ...

Che cos'è un collegamento shell e perché non è sempre sufficiente?

Anche se potrebbe non sembrare familiare, lo sappiamo tutti! I collegamenti ai file sono senza dubbio il modo più utilizzato per collegare i file. Questi sono stati trovati in alcune delle prime versioni di Windows 9x e sono stati lì per molto tempo.

Questi ti consentono di creare rapidamente un collegamento a qualsiasi file o cartella, sono più specificamente realizzati per memorizzare informazioni aggiuntive lungo solo il collegamento come ad esempio la directory di lavoro in cui viene eseguito il file, gli argomenti da fornire al programma e le opzioni come se massimizzare il programma.

L'aspetto negativo di questo approccio al collegamento è esattamente questo, le informazioni extra richiedono che questo tipo di collegamento abbia un cluster di dati per contenere quel file. Il problema quindi non è necessariamente che occupa spazio su disco, ma è piuttosto che si accede indirettamente al collegamento in quanto è necessario prima richiedere il cluster di dati prima di arrivare al collegamento effettivo. Se il percorso a cui si fa riferimento nel collegamento effettivo non è più presente, il collegamento shell continuerà a esistere.

Se dovessi operare sul file a cui ti riferisci, dovresti prima capire in quale directory si trova il file. Non è possibile semplicemente aprire il collegamento in un editor poiché si modifica il .lnkfile anziché il file a cui si è collegati. Questo blocca molti possibili casi d'uso per i collegamenti shell.

In che modo un collegamento al punto di giunzione cerca di risolvere questi problemi?

Un punto di giunzione NTFS consente di creare un collegamento simbolico a una directory sulle unità locali , in modo che si comporti esattamente come una normale directory. Quindi, hai una directory di file memorizzati sul tuo disco ma puoi accedervi da più posizioni.

Quando si rimuove il punto di giunzione, rimane la directory originale. Quando si rimuove la directory originale, il punto di giunzione rimane. È molto costoso enumerare il disco per verificare i punti di giunzione che devono essere eliminati. Questo è un aspetto negativo a causa della sua attuazione.

Il punto di giunzione NTFS viene implementato utilizzando i punti di analisi NTFS , che sono oggetti del file system NTFS introdotti con Windows 2000.

Un punto di analisi NTFS è un tipo di oggetto file system NTFS. I punti di analisi forniscono un modo per estendere il filesystem NTFS aggiungendo ulteriori informazioni alla voce della directory, quindi un filtro del file system può interpretare come il sistema operativo tratterà i dati. Ciò consente la creazione di punti di giunzione, collegamenti simbolici NTFS e punti di montaggio del volume ed è una funzionalità chiave del sistema di archiviazione gerarchica di Windows 2000.

Proprio così, l'invenzione del punto di analisi ci consente di fare modi più sofisticati di collegamento.

Il punto di giunzione NTFS è un collegamento software, il che significa che si collega semplicemente al nome del file. Ciò significa che ogni volta che il collegamento viene eliminato i dati originali rimangono intatti ; ma, ogni volta che i dati originali vengono eliminati, i dati originali spariranno .

Posso anche file soft link? Ci sono collegamenti simbolici ?

Sì, quando è arrivato Windows Vista hanno deciso di estendere la funzionalità degli oggetti del file system NTFS fornendo il collegamento simbolico NTFS , che è un collegamento software che agisce allo stesso modo del punto di giunzione NTFS. Ma può essere applicato a file e directory.

Condividono nuovamente lo stesso comportamento di eliminazione, in alcuni casi d'uso questo può essere un problema per i file in quanto non si desidera avere una copia inutile di un file in giro. Questo è il motivo per cui anche la nozione di hard link è stata implementata.

Che cos'è un hard link e come si comporta rispetto ai soft link?

I collegamenti reali non sono oggetti del file system NTFS, ma sono invece un collegamento a un file (in dettaglio, si riferiscono alla voce MFT in quanto memorizza informazioni aggiuntive sul file effettivo). La voce MFT ha un campo che ricorda la quantità di tempo a cui un file è collegato a un hard disk. I dati saranno comunque accessibili finché esiste ancora almeno un collegamento che punta ad essi.

Pertanto, i dati non dipendono più da una singola voce MFT per esistere . Finché esiste un collegamento reale, i dati sopravvivranno. Ciò impedisce l'eliminazione accidentale per i casi in cui non si desidera ricordare dove si trovava il file originale.

Ad esempio, è possibile creare una cartella con "film che devo ancora guardare" e una cartella "film che porto in vacanza" e una cartella "film preferiti". I film che non sono nessuno di questi verranno eliminati correttamente, mentre quelli che sono uno di questi continueranno ad esistere anche quando si è visto un film.

A cosa serve un collegamento punto di montaggio volume ?

Ad alcuni IT o uomini d'affari potrebbe non piacere dover ricordare o digitare le diverse lettere di unità che hanno il loro sistema. Cosa significa M:veramente comunque? Era musica? Film? Modelli? Mappe?

Microsoft ha compiuto sforzi nel corso dell'anno per cercare di migrare gli utenti da work in drive C:a work in your user folder. Potrei indubbiamente dire che gli utenti con UAC e problemi di autorizzazione sono quelli che non seguono queste linee guida, ma ciò non li fa meravigliare:

Perché dovresti anche visualizzare ogni giorno tranne i tuoi file personali?

I punti di montaggio del volume sono il modo IT professionale di non essere limitati dalle lettere di unità e di avere una struttura di directory che ha senso per loro, ma ...

I miei file sono in luoghi diversi, posso usare i collegamenti per metterli insieme?

In Windows 7, le librerie sono state introdotte esattamente per questo scopo. Fatto con i file musicali che si trovano in questa cartella, quella cartella e quella cartella . Da un livello di vista inferiore, una libreria può essere visualizzata come più collegamenti. Vengono nuovamente implementati come oggetto del file system che può contenere più riferimenti. In sostanza è una relazione uno-a-molti ...

Il mio cervello esplode ... Puoi riassumere quando usarli?

  • Collegamenti di scelta rapida: utilizzali quando è necessario un accesso rapido a un eseguibile o a un sito Web, un file che si avvia molto spesso o quando è necessario specificare i parametri di un'applicazione e un file batch è eccessivo. Non utilizzarlo quando si intende manipolare il file tramite il relativo collegamento.

  • Punti di giunzione: usali quando vuoi che una directory si trovi altrove, questo ti consente di spostare le directory su unità più veloci o più lente senza perdere la possibilità di accedere al percorso originale. Un altro uso è quando si desidera accedere a una directory attraverso un altro percorso. Questi non possono essere utilizzati per collegarsi a una condivisione.

  • Collegamenti soft: utilizzali laddove un collegamento di collegamento non sia sufficiente, viene spesso utilizzato quando si intende manipolare il file tramite il collegamento. O quando si desidera che il file si trovi su un'unità più veloce o più lenta senza perdere la possibilità di accedere al percorso originale.

  • Hard link: usali quando vuoi che un file scompaia quando tutti i hard link vengono rimossi. Questo non può essere usato per le cartelle.

  • Punti di montaggio del volume: usali quando esaurisci le lettere di unità o quando ritieni più fattibile accedere a un volume attraverso un percorso anziché attraverso una lettera di unità.

  • Librerie: usali quando hai lo stesso tipo di file in molte posizioni diverse e ne hai bisogno per stare insieme, questo supporta le unità rimovibili, quindi ti risulta utile far apparire le cartelle sulle tue unità rimovibili tra quelle sul tuo computer quando inserisci esso. È possibile fare clic sulle singole cartelle dall'albero delle cartelle sotto la libreria nella vista ad albero, che facilita lo spostamento dei file tra i due.


Le librerie sono a livello di shell come collegamenti di scelta rapida, giusto?
Medinoc,

@Medinoc: No, aggregano il contenuto di più posizioni.
Tamara Wijsman

1
Ma lo fanno a livello di filesystem in modo tale che, per esempio, cmd.exe e dirpossano elencare il contenuto aggregato (nel qual caso, dove si trovano nel file system, non riesco a trovarlo), o si aggregano solo a livello di shell, dove solo Windows Explorer e le finestre di dialogo dei file possono mostrarli? Ho avuto l'impressione che fosse il secondo, ma il vostro "no" sfide che questo a meno che non ho scritto la mia domanda sbagliata (volevo dire "Le biblioteche sono shell di livello come i collegamenti di scelta rapida sono , vero?" ).
Medinoc,

@Medinoc: sono file su C:\Users\{User}\AppData\Roaming\Microsoft\Windows\Libraries.
Tamara Wijsman,

1
@Pacerier: Windows utilizza il vecchio sistema di localizzazione, dove ad esempio è possibile spostare una cartella musicale dalle sue proprietà. Le librerie sono una nuova aggiunta, che il sistema operativo stesso utilizza a malapena come risultato. Pertanto dubito che qualcosa si rompa; poiché sono destinati esclusivamente a scopi di visualizzazione, ...
Tamara Wijsman,

8

Se sei su Windows Vista o versione successiva e disponi dei diritti di amministratore, potresti dare un'occhiata al comando mklink (è uno strumento da riga di comando). Non sono sicuro di come sia effettivamente il collegamento simbolico poiché Windows gli dà la piccola icona a freccia che mette su scorciatoie, ma un rapido test di Notepad ++ su un file di testo suggerisce che potrebbe funzionare per quello che stai cercando.

Puoi eseguire mklink senza argomenti per una guida rapida all'uso.

Spero che aiuti.


mklink utilizza i punti di giunzione NTFS (credo sia quello che viene chiamato) per duplicare più o meno perfettamente i collegamenti in stile Unix. Windows può dire che è un incrocio, quindi gli darà la tradizionale icona a forma di freccia. È possibile rimuoverlo con un po 'di confusione nel registro, ma non ricordo dove.
jcrawfordor,

2
@jcrawfordor: le strutture del disco sono "punti di analisi" . Giunzioni e collegamenti simbolici sono due diversi tipi di punti di analisi; i mountpoint del volume sono terzi.
Grawity,

1
E sì, @Gemini, i mklinksymlink creati sono stati implementati appositamente per funzionare proprio come quelli di Unix .
Grawity,

Grazie grawity, per la conferma. Non ho mai giocato molto con loro, quindi volevo solo includere disclaim.h;)
GeminiDomino,

2

questo articolo ha alcune distinzioni

una distinzione importante è che, in un certo senso, le giunzioni pre-win7 erano un po 'pericolose, in quanto la loro eliminazione avrebbe cancellato la directory di destinazione.

http://cects.com/overview-to-understanding-hard-links-junction-points-and-symbolic-links-in-windows/

Un punto di giunzione non dovrebbe mai essere rimosso in Win2k, Win2003 e WinXP con Explorer, i comandi del o del / s, o con qualsiasi utilità che ricorre in modo ricorsivo alle directory poiché queste elimineranno la directory di destinazione e tutte le sue sottodirectory. Utilizzare invece il comando rmdir, l'utilità linkd o fsutil (se si utilizza WinXP o versioni successive) o uno strumento di terze parti per rimuovere il punto di giunzione senza influire sulla destinazione. In Vista / Win7, è sicuro eliminare i punti di giunzione con Explorer o con i comandi rmdir e del.

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.