Privacy Policy [FOLBlog] Link simbolici – Cosa sono e come usarli con Vista (di enrico)

Ricerca in FOLBlog

Nov 102008
 

Link simbolico

La versione 5.0 del file system NTFS presente su Vista consente la creazione di link simbolici.
In ambiente *nix è una pratica semplice e comune quelle di reindirizzare una cartella o un file proprio utilizzando link simbolici.

Cosa è un link simbolico?
Immaginate il link simbolico come una sorta di dirottatore che impone al sistema operativo di andare a leggere o scrivere il contenuto di una cartella (o file) da un’altra parte rispetto al comando ricevuto.
Per esempio, supponiamo di creare un link simbolico alla cartella D:\Folder2 attribuendo ad esso il nome C:\Folder1.
Quando qualsiasi applicazione tenterà di leggere/scrivere il contenuto di C:\Folder1, in realtà leggerà o scriverà su D:\Folder2, senza che l’applicazione stessa se ne renda conto o mostri un qualunque errore.

A che servono i link simbolici?
Faccio immediatamente un esempio pratico.
Supponiamo che, non sopportate che il ProgrammaX salvi i dati nella cartella:
C:\Users\Enrico\DatiX
ma desideriate invece che tutti i dati siano salvati nella cartella
D:\Enrico\DatiX
Con la creazione di un link simbolico, senza modificare alcunchè nella configurazione dell’applicazione, è possibile ottenere facilmente questo risultato.
Basterà infatti creare un link simbolico con il nome “C:\Users\Enrico\DatiX” che punti alla cartella “D:\Enrico\DatiX”.
In questo modo ogni applicazione che tenterà di scrivere/leggere il contenuto di  C:\Users\Enrico\DatiX, agirà invece in D:\Enrico\DatiX.

Come creare ed eliminare i link simbolici
Il comando per creare un link simbolico è mklink.
Questa la sua sintassi:

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

/D – Crea un link simbolico ad una cartella (opzione di default).
/H – Crea un link simbolico ad un file (hard link).
/J – Crea un link di giunzione tra cartelle.
Link – Specifica il nome del link simbolico.
Target – Specifica il path (relativo o assoluto) alla cartella che verrà realmente utilizzata.

Per tornare all’esempio, ecco cosa occorrerebbe fare in pratica per ottenere il risultato illustrato in precedenza:

  • Copiare il contenuto della cartella C:\Users\Enrico\DatiX nella cartella D:\Enrico\DatiX
  • Eliminare la cartella C:\Users\Enrico\DatiX
  • creare il link simbolico digitando il seguente comando in un prompt di comandi eseguito con privilegi di amministratore:MKLINK /D  C:\Users\Enrico\DatiX  D:\Enrico\DatiX

Tutto qui.
Se con il file manager si va a verificare il contenuto di C:\Users\Enrico si troverà al suo interno DatiX (ma come, non l’avevamo eliminata?); non si tratta della cartella vera e propria, ma del suo link simbolico. La cartella DatiX in effetti si trova “fisicamente” in D:\Enrico\
Per eliminare un link simbolico, si opera come per eliminare una qualsiasi cartella.

Ho usato questo metodo per reindirizzare la cartella in cui Thunderbird salva tutti i dati della posta elettronica.
Thunderbird infatti salva i dati nella cartella: C:\Users\<nomeutente>\AppData\Roaming\Thunderbird\Profiles\<profilo>.default
Con la creazione di un opportuno link simbolico e senza modificarne la configurazione, ora Thunderbird non salva più i dati in C:\Users\Enrico\AppData\Roaming\Thunderbird\Profiles\74zo0xe0.default ma automaticamente in D:\Enrico\Thunderbird\74zo0xe0.default

Il medesimo metodo con l’utilizzo di link simbolici è stato utilizzato anche per condividere la stessa cartella dati di Thunderbird con con diverse installazioni del client di posta elettronica, anche su diversi sistemi operativi.
Rimando a questa ottima guida per i dettagli.

Technorati Tag: link simbolico,howto,cosaè,Thunderbird,Vista,soft link,hard link

Articoli simili:

  9 Risposte a “Link simbolici – Cosa sono e come usarli con Vista”

Commenti (8) Pingbacks (1)
  1. Usando Mozilla Firefox Mozilla Firefox 3.0.3 con Mac OS X Mac OS X 10

    La comodità dei link simbolici è qualche cosa di impressionante. 😀

    Il versioning di NTFS non l’ho ancora capito… 😕

  2. Usando Mozilla Firefox Mozilla Firefox 3.0 con Windows Windows XP

    mklink fa la stessa cosa di junction (sysinternals) giusto?

    Uso junction per avere link di folder (su xp) ma con i file non funziona.. Su vista questo mklinkfunziona anche con i file? (condivido un folder di configurazione tramite “getdropbox.com” tra linux a casa e winxp al lavoro e mi sarebbe utile la cosa)

  3. Usando Mozilla Firefox Mozilla Firefox 3.1b2 con Windows Windows Vista

    nessuno ha scritto:

    mklink fa la stessa cosa di junction (sysinternals) giusto?

    Junction di Sysinternal è equivalente a MKLINK /D.

    nessuno ha scritto:

    u vista questo mklinkfunziona anche con i file?

    MKLINK /H è il comando che crea gli hardlink a file.

    La differenza tra i due parametri /D e /H sta proprio in questo: /D crea un link simbolico ad una directory (detto symlink o softlink, simile al concetto di “collegamento” in Windows), mentre MKLINK con il parametro /H crea un link simbolico ad un file (hardlink).

    MKLINK /H notepad.exe np.exe crea un hardlink che consente poi di lanciare l’esecuzione di notepad tramite il comando np.exe

    Se hai un po’ di dimestichezza con l’inglese, qui è ben spiegata la differenza tra hardlink e softlink.

  4. Usando Mozilla Firefox Mozilla Firefox 3.0 con Windows Windows XP

    @Enrico
    non so su windows ma in generale la differenza tra hard link e softlink non è quella di poter creare link solo a directory o solo a file, si possono effettuare sia hardlink che softlink a file o directory, in ogni caso grazie della risposta (ho capito che mklink non è equivalente a “junction”, infatti mklink sfrutta una nuova caratteristica di vista NTFS)

    @per_i_posteri_che_leggeranno
    no, non c’è alcun modo di creare un link (hard o soft) che punti ad un file su XP… Sembra che i softlink per i file siano stati introdotti per l’NTFS di Vista, ecco il riferimento (technet.microsoft.com/it-it/magazine/2007.02.vistakernel.aspx)

    stralcio dell’articolo:
    “In Windows Vista è finalmente disponibile una funzione del file system che molti ritenevano mancasse in NTFS, il collegamento simbolico ai file (o collegamento soft, come viene chiamato in UNIX). La versione Windows 2000 di NTFS ha introdotto collegamenti simbolici a directory, chiamati giunzioni di directory, che consentono di creare una directory che ne indica un’altra, ma fino alla versione di Windows Vista, NTFS supportava soltanto collegamenti reali ai file.”

  5. Usando Google Chrome Google Chrome 23.0.1271.97 con Windows Windows 7

    Devo correggere quanto scritto nel post precedente:
    NTFS supporta le Junction ANCHE SU WINDOWS XP: il programma “junction” che si può scaricare dal sito della microsoft funziona perfettamente anche su windows xp A PATTO CHE LO SI USI SU DISCHI FORMATTATI CON NTFS e non FAT32.

    uso da parecchio tempo le junction su windows XP.

    l’uso principale che ne ho fatto è stato, quando ho aggiunto un disco allo stato solido al pc, di spostare certe cartelle sul nuovo disco sostituendole con delle junction verso il nuovo percorso in modo da non dover riconfigurare i programmi già installati.

  6. Usando Internet Explorer Internet Explorer 9.0 con Windows Windows Vista

    per quale motivo una persona deve voler spostare i dati da una cartella all’altra se poi la certella viene letta automaticamente senza richiedere l’autorizzazione? A che serve farlo?

  7. Usando Internet Explorer Internet Explorer 10.0 con Windows Windows 8

    ho utilizzato il comando mklink nel promt dei comandi di Windows 8 ma come effetto ho avuto la sparizione dei file foto del mio cellulare quando lo collego . avevo usato il comando secondo le istruzioni per farlo apparire come memoria di massa 😡 è possibile eliminare il comando dal promt o eliminare gli effetti di tale comando ???

  8. Usando Google Chrome Google Chrome 29.0.1600.1 con Windows Windows 7

    nicola ha scritto:

    ho utilizzato il comando mklink nel promt dei comandi di Windows 8 ma come effetto ho avuto la sparizione dei file foto del mio cellulare

    Quale comando hai eseguito, esattamente?
    Qual’era il tuo proposito?

 Lascia un commento

Puoi usare questi tag e attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(richiesto)

(richiesto)

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

%d blogger hanno fatto clic su Mi Piace per questo: