Domanda

Ero alla ricerca di un modo per creare hard link sotto Windows e ho trovato questa pagina: http://technet.microsoft.com/en-us/library/cc788097.aspx

Per provarlo, ho creato un file (1.txt) nella radice della mia C: guidare con 100 linee del seguente contenuto:

C: \ 1.txt (2.598 byte):

test test test test test

Poi ho aperto il prompt dei comandi e digitato:

fsutil hardlink create C:\2.txt C:\1.txt

Successo, 2.txt è stato creato, ma quando vado a vedere la sua dimensione ha esattamente 2.598 byte e anche notato alcuni comportamenti strani (per quanto riguarda la mia comprensione di hard link va):

  1. Se cancello 2.txt (il file collegato duro) 1.txt non viene eliminato, e viceversa.
  2. Se apro 2.txt dopo cancello 1.txt (il file originale) il contenuto è sempre lo stesso.

Come funziona il collegamento reale fsutil comando create differisce dal comando di copia? E come posso creare un vero e proprio hard link sotto Windows?

Sto usando Windows XP SP 3, e il mio file system è NTFS.

È stato utile?

Soluzione

Questo è esattamente il comportamento che dovrebbe succedere. Sei sicuro di capire quanto sia difficile lavorare link? Gli hard link sono in realtà solo più voci nel file system che fanno riferimento allo stesso file esatto. Se si crea un collegamento fisso a un file e modificare una delle istanze del file, l'altro file verrà mostrata con le modifiche perché entrambi si riferiscono agli stessi blocchi di dati sul disco.

Quando si elimina uno degli hard link, sei davvero solo l'eliminazione di una delle voci del filesystem che si riferiscono a quel file. Il file non viene cancellato fino a quando si elimina tutti dei suoi collegamenti fissi (tra cui quella originale). Dopo aver eliminato 1.txt, 2.txt esiste ancora e fa riferimento allo stesso file che in origine era lì, solo che ora c'è solo una singola voce di file system riferimento a quel file (vale a dire, 2.txt). 2.txt è quel file.

Altri suggerimenti

  

Come funziona il collegamento reale fsutil creare   il comando è diverso dal comando di copia?   E come posso creare un vero e proprio hard link   sotto Windows?

Dopo aver creato il file di un collegamento fisico, provare a modificare sia. Scoprirete che i cambiamenti si riflettono in entrambi i file.

Prova a creare un hard-link di un file molto grande (diciamo un video o un disco-immagine). Si noti che lo spazio disponibile sul disco non è cambiato (o non è cambiato di più di pochi byte, se metadati aggiuntivi doveva essere scritti su disco in modo da riflettere la nuova voce dir).

Questo è un vero e proprio hard link. In UNIX (io non sono a conoscenza con la variante di Windows) un file è solo un insieme di dati sul disco (semplicisticamente). E 'la voce di directory stessa che dà che un nome al file.

Quando si dispone di due voci di directory che puntano allo stesso file sottostante, eliminare uno di loro fa non eliminare il file meno che non sia l'ultima voce di directory collegato ad esso (e il file non è ancora aperto da un processo, ma questo è un altro discorso).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top