Quando installiamo un grosso programma su Windows, vengono creati dei link nel registro di sistema che gli fanno tenere traccia della posizione reale dei file eseguibili.

Per questo motivo, se spostiamo un programma in una partizione secondaria, smetterà di funzionare (i link si interrompono).

Come fare a garantire la continuità di questi collegamenti?
Con Giunzioni o Link Simbolici.

undefined

Il comando mklink fa credere a Windows che i file nella cartella siano tutti memorizzati nel percorso originario, quando in realtà sono stati spostati in una partizione esterna.

Come fare

1.

Selezionare la cartella contenente il software da spostare altrove e procedere a tale operazione.

2.

Creare un 'link simbolico' aprendo un prompt dei comandi con i diritti di amministratore.
Il comando mklink consente di fare in modo che le richieste di accesso per i file presenti nella directory che conteneva originariamente i file dell'applicazione vengano automaticamente reindirizzate verso la cartella di destinazione (quella in cui sono realmente).

3.

Eseguire il comando:

mklink /D "cartella di reindirizzamento" "cartella contenente realmente i file"

Esempio (dopo lo spostamento del programma pippo da C: a D:):

mklink /D "C:\Program files\pippo" "D:\App\pippo"

In questo modo:

  • Tutti i riferimenti alla vecchia cartella 'pippo' in C: rimarranno validi, i file saranno 'pescati' da D:, non saranno presenti realmente in C:
  • Tutte le operazioni di spostamento, copia, eliminazione, avranno effetto sulla directory reale (in D:).

Esempi

1.

Come vedere la cartella G:\Foto dentro la cartella Immagini in C:

cd %userprofile%\Pictures (per entrare nella cartella Immagini di Windows)
mklink /D Foto G:\Foto

2.

Come vedere la cartella Video che è su un'unità di rete nella cartella Video Pubblica in C:

cd C:\users\public\video
mklink /D NetworkVideo \\DiscoDiRete\Video

3.

Come creare una cartella sul Desktop e vederla su OneDrive

cd C:\users\<nome utente>\OneDrive
mklink /D CartellaSincronizzataDaDesktop C:\users\<nome utente>\Desktop\CartellaSincronizzata

Note

1.

dir /al

Con tale comando si potrà vedere la lista ti tutte le giunzioni o link eseguiti o presenti in una cartella. 
Prima di usarlo posizionarsi nella cartella da verificare.

In alternativa ci sono dei programmi come NTFSLinksView di NirSoft:

undefined

2.

mklink /J ...  genera una 'junction'

mklink /D ... genera un 'link simbolico'

La differenza sostanziale è che le junction possono essere create anche sui singoli file ma non supportano i percorsi relativi (i link simbolici solo su cartelle ma supportano anche percorsi relativi); in sostanza io preferisco e consiglio di usare link simbolici su cartelle.

3.

mklink ... funziona su Windows 7 - 8 - 10

linkd ... analogo per Windows XP - 2000