Tutti conoscono che cosa sono i “collegamenti” in Windows. Inseriti nel menù Start, Programmi del sistema operativo all’atto dell’installazione di una nuova applicazione oppure aggiunti alle icone visualizzate sul desktop, i collegamenti assumono – su disco – la forma di un file con estensione .lnk
E’ immediato verificarlo facendo clic con il tasto destro del mouse su un qualunque collegamento quindi scegliendo la voce Proprietà ed infine accedendo alla scheda Generale.
I collegamenti, riconoscibili per la presenza di una piccola freccia nella loro icona, sono una sorta di “puntatori” verso altri file memorizzati sul disco fisso, su unità esterne o su percorsi di rete.
Il percorso ed il file cui ogni collegamento fa riferimento è verificabile controllando ciò che appare nella casella Destinazione (scheda Collegamento). Come noto, l’eliminazione di un collegamento ha come conseguenza esclusivamente la rimozione del corrispondente file .lnk
ma non di quello indicato come destinazione.
Talvolta può presentarsi la necessità di dover spostare su un’altra unità o in una differente partizione il contenuto della cartella d’installazione di un programma. Limitandosi a spostare la cartella contenente l’applicazione, soprattutto se si ha a che fare con software di grandi dimensioni (suite per l’ufficio, complessi gestionali, programmi di grafica e fotoritocco,…), in un altro volume quindi aggiornando i collegamenti, si avranno sicuramente dei problemi. All’atto del setup della maggior parte delle applicazioni Windows più complesse vengono infatti aggiunti, nel registro di sistema, riferimenti alla specifica cartella nella quale il programma è stato installato. Tali informazioni vengono frequentemente utilizzate dal programma durante il suo funzionamento e sono spesso abbinate ad altre indicazioni simili memorizzate in alcuni file di dati, spesso presenti nella cartella d’installazione.
Come fare, quindi, per spostare un’intera applicazione senza incorrere in malfunzionamenti, senza la necessità di operare una disinstallazione ed una successiva nuova installazione, e senza perdite di dati (ad esempio, informazioni relative alla configurazione del programma)?
Prima di procedere, suggeriamo di agire con la massima cautela effettuando un’immagine del contenuto dell’intero disco fisso (ved. questa pagina, sezione Disk imaging, per maggiori informazioni) in modo tale da avere la possibilità di ripristinare la configurazione di partenza nel caso in cui si dovessero incontrare difficoltà o malfunzionamenti.
A questo punto, si potrà selezionare la cartella contenente il software da collocare in un’altra unità e procedere all’operazione di spostamento. Quest’operazione è effettuabile avvalendosi, come sempre, dell’interfaccia di Windows. Per effettuare un’operazione di spostamento, lo ricordiamo, è necessario usare il tasto destro del mouse mantenendolo sempre premuto per trascinare la cartella selezionare dal percorso di origine a quello di destinazione. Per completare l’operazione, si dovrà poi cliccare sulla voce Sposta qui.
Il passo successivo consiste nel generare una “giunzione tra directory“: in Windows Vista così come in Windows 7 l’operazione è semplicissima da porre in essere. Innanzi tutto, è indispensabile aprire la finestra del prompt dei comandi con i diritti amministrativi. Per procedere, basta cliccare sul pulsante Start in basso a sinistra, digitare cmd
, cliccare con il tasto destro del mouse su cmd.exe
e scegliere la voce Esegui come amministratore.
Dopo aver confermato la scelta mediante la pressione del pulsante Sì, si dovrà ricorrere al comando mklink
, in grado di creare i cosiddetti “collegamenti simbolici” e “giunzioni tra directory”.
Una “giunzione tra directory” consente di richiedere al sistema operativo di creare una sorta di “cartella specchio”: le richieste dirette ai file presenti in tale directory vengono automaticamente reindirizzate verso la cartella di destinazione specificta (la directory all’interno della quale sono realmente memorizzati tutti i file e tutte le eventuali sottocartelle).
Usando correttamente il comando mklink
si può quindi far credere a Windows che i file necessari per il corretto funzionamento di un’applicazione siano tutti memorizzati nel percorso originario quando in realtà non lo sono, essendo stati spostati altrove.
La sintassi del comando mklink
è molto semplice:
Immaginiamo un programma che era precedentemente installato nella cartella c:\programmi\miaapplicazione
. Si supponga di aver già spostato tale software in g:\applicazioni\miaapplicazione
.
Ricorrendo al comando mklink /J "c:\programmi\miaapplicazione\" "g:\applicazioni\miaapplicazione"
, Windows genererà una “giunzione” tra la cartella specificata più a sinistra e quella indicata più a destra.
Una simile “giunzione” consentirà di fare in modo che tutti i riferimenti, già presenti sul sistema, alla cartella d’origine c:\programmi\miaapplicazione
continuino a funzionare correttamente.
E’ bene riporre massima attenzione quando si lavora con le “giunzioni di directory”. Quando, come nel nostro caso, si generare un link simbolo su una cartella, le operazioni di spostamento, copia ed eliminazione, avranno effetto sulla directory indicata come destinazione (ossia sulla cartella contenente i file veri e propri).
Le “giunzioni di directory” possono fare riferimento solamente a percorsi locali: non è quindi permesso “puntare” cartelle condivise in rete.
I link simbolici sono una caratteristica offerta dal file system NTFS: sono quindi utilizzabili non solo su Windows 7 e Windows 7 ma anche su Windows XP e Windows 2000. Questi ultimi due sistemi operativi sono però sprovvisti del comando mklink
che non può essere impiegato.
Aggiungiamo alcune informazioni conclusive circa le altre possibilità che possono essere impiegate per referenziare file e cartelle in più modi. Tutti gli approcci sono applicabili ricorrente, in Windows Vista ed in Windows 7, al comando mklink
.
Windows consente ad esempio di utilizzare i cosiddetti “hard links” che offrono la possibilità di assegnare più di un nome al medesimo file memorizzato su disco. La sintassi con cui invocare mklink
è semplice. E’ sufficiente digitare mklink /H
facendo seguire, dapprima, il nuovo nome da assegnare ad un file già salvato su disco quindi il nome del file “reale”, già presente (ove necessario, bisognerà introdurre i due percorsi completi).
Link Shell Extensions è un software gratuito la cui prerogativa è la possibilità di aggiungere al menù contestuale di Windows nuovi comandi per la creazione di “hard links” e di “giunzioni di directory”. Il programma è utilizzabile non solo su Windows Vista e Windows 7 ma anche su sistemi operativi più datati quali Windows XP e Windows 2000.
Dopo aver scaricato ed installato la versione adatta al sistema in uso (32 o 64 bit), si noterà la presenza di alcune voci aggiuntive nel menù contestuale di Windows. In particolare, il comando Pick link source permetterà di indicare la cartella contenente i file mentre scegliendo Drop as è possibile generare una “giunzione tra directory” (Junction).
Sia mklink
che Link Shell Extensions consentono di creare anche i cosiddetti “collegamenti simbolici” (sym-links, in inglese) ovvero particolari file che non sono altro che un rimando ad una directory o ad un altro file. I collegamenti simbolici vengono gestiti in maniera del tutto trasparente dal file system e quindi dal sistema operativo che interpreta le richiesta di accesso al collegamento così come se si trattasse del file o della cartella cui il sym-link fa riferimento. Ovviamente il passaggio intermedio aggiunto in forza dell’uso del collegamento simbolico ha un costo in termini prestazionali: l’accesso al file è sicuramente più lento rispetto ad un accesso fisico “diretto”.
I collegamenti simbolici sono molto versatili, più delle “giunzioni di directory” perché possono puntare non solo a cartelle locali ma anche a directory memorizzate su percorsi di rete.
Prerequisito essenziale per il corretto funzionamento del programma è l’installazione, sul sistema in uso, delle librerie runtime Microsoft Visual C++. Per ciascuna versione di Windows, la pagina riporta i link per effettuare il download.