Windows 7 hardlink su due unità diverse


13

Sto cercando di creare un hardlink sul mio disco C che punta a un file sul mio disco D. Apro un terminale con privilegi di amministratore e provo quanto segue:

C:\Users\sandro>mklink /H _vimrc D:\sandro-desktop\.vimrc

L'errore che ottengo è: il sistema non può spostare il file su un'altra unità disco.

Quando provo un softlink ho il problema che per qualche ragione le modifiche ai contenuti del link non si riflettono sul file di destinazione.

Grazie!


Che ne dici _vimrcdi destinazione invece di .vimrc?
Ulidtko,

Non è una risposta, ma troverai buone informazioni qui, schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html .
therube

Risposte:


21

Un collegamento reale è una funzione del file system che non può oltrepassare un limite del file system. Non è possibile collegare i file su C: a D: perché sono file system separati. Ciascuno di essi potrebbe contenere lo stesso tipo di file system (ad es. NTFS) ma sono file system separati.


Credo che s / diverso / separato / sarebbe più appropriato.
user1686

@grawity: Sì, d'accordo. Così modificato.
Mike Fitzpatrick,

Hai idee su come posso aggirare questo?
Sandro,

È possibile migrare il profilo utente di Windows 7 (o solo la cartella Documenti) sull'unità D, quindi i collegamenti fisici funzioneranno. Se lo fai, assicurati di utilizzare i metodi corretti in Windows 7 (generalmente attraverso le schede delle proprietà) - non spostare manualmente le cartelle da C: a D:
Mike Fitzpatrick,

L'unico caso in cui il collegamento tra C: e D: funzionerà è quando si trovano sullo stesso file system, ad esempio subst D: C:\utils(ovviamente, creato usando Registry per renderlo substpersistente).
miroxlav,

3

Se è Windows 7, puoi utilizzare i collegamenti simbolici: Steammover fa proprio questo


In che modo è diverso da quello che sto facendo ora? Immagino di poterlo provare :)
Sandro,

i collegamenti simbolici funzionano tra le directory - alcune delle opzioni relative alla giunzione precedente non lo sono. Inoltre, poiché esiste un front-end pulito, che ti dice il comando, è più facile capire cosa viene fatto. Uso principalmente XP, quindi non sono sicuro che sia "migliore", ma da quello che ho letto, dovrebbe fare il lavoro che ti serve per farlo con il minimo sforzo
Journeyman Geek

2
@Sandro: Dettagli tecnici: due hardlink puntano allo stesso inode (su Unix; molto simile nel NTFS di Windows), che funziona solo all'interno di un singolo filesystem. Due hardlink sono completamente identici; non c'è "originale". Un collegamento simbolico, d'altra parte, indica un percorso , che in realtà può essere qualsiasi testo.
user1686

Se è così che funzionano i collegamenti simbolici, come mai quando apporto una modifica a un file, l'altro non mostra le modifiche?
Sandro,

-3

Prova questo:

mklink /H "C:\Users\sandro_vimrc" "D:\sandro-desktop\.vimrc"

Immagino che questo abbia qualcosa a che fare con il nome del file del target. Prova a utilizzare le virgolette attorno al link di destinazione.

Penso che anche il tuo link debba essere un percorso completo.


Ho provato quelli e ancora niente. Grazie per l'idea però!
Sandro,

Probabilmente è il punto-nome del bersaglio. Funziona con altri file?
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.