Windows7-Hardlink über zwei verschiedene Laufwerke

13

Ich versuche, auf meinem C-Laufwerk einen Hardlink zu erstellen, der auf eine Datei auf meinem D-Laufwerk verweist. Ich öffne ein Terminal mit Administratorrechten und versuche Folgendes:

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

Der Fehler, den ich erhalte, ist: Das System kann die Datei nicht auf ein anderes Laufwerk verschieben.

Wenn ich einen Softlink versuche, tritt das Problem auf, dass Änderungen am Linkinhalt aus irgendeinem Grund nicht in der Zieldatei berücksichtigt werden.

Vielen Dank!

Sandro
quelle
Wie wäre es _vimrcim Ziel statt .vimrc?
Ulidtko
Keine Antwort, aber gute Informationen finden Sie hier, schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html .
Therube

Antworten:

20

Ein fester Link ist eine Dateisystemfunktion, die eine Dateisystemgrenze nicht überschreiten kann. Sie können Dateien auf C: nicht fest mit D: verknüpfen, da es sich um separate Dateisysteme handelt. Sie könnten enthalten jeweils die gleiche Art von Datei Sytem (z. B. NTFS) , aber sie sind separate Dateisysteme.

Mike Fitzpatrick
quelle
Ich glaube, dass s / different / separate / angemessener wäre.
user1686
@grawity: Ja, stimmte zu. Also bearbeitet.
Mike Fitzpatrick
Haben Sie Ideen, wie ich das umgehen kann?
Sandro
Sie können Ihr Windows 7-Benutzerprofil (oder nur den Ordner Eigene Dateien) auf Laufwerk D migrieren. Dann funktionieren die Hardlinks. Wenn Sie dies tun, stellen Sie sicher, dass Sie die richtigen Methoden in Windows 7 verwenden (im Allgemeinen über Eigenschaftenregisterkarten) - verschieben Sie Ordner nicht manuell von C: nach D:
Mike Fitzpatrick
Der einzige Fall, in dem ein Hardlink zwischen C: und D: funktioniert, ist, wenn sie sich im selben Dateisystem befinden, z. B. subst D: C:\utils(natürlich mithilfe der Registrierung erstellt, um dies substdauerhaft zu machen ).
Miroxlav
3

Wenn es Windows 7 ist, können Sie Symlinks verwenden - Steammover macht genau das

Gesellenfreak
quelle
Wie unterscheidet sich das von dem, was ich jetzt mache? Ich denke, ich kann es versuchen :)
Sandro
symlinks funktioniert zwischen Verzeichnissen - einige der älteren Optionen im Zusammenhang mit Junctions tun dies nicht. Da es außerdem ein ordentliches Frontend gibt, das Ihnen den Befehl mitteilt, ist es außerdem einfacher, herauszufinden, was getan wird. Ich benutze hauptsächlich XP, daher bin ich mir nicht sicher, ob es "besser" ist, aber nach dem, was ich gelesen habe, sollte es den Job machen, den Sie brauchen, um mit dem geringsten Aufwand zu arbeiten
Journeyman Geek
2
@ Sandro: Technische Details: Zwei Hardlinks verweisen auf denselben Inode (unter Unix; in Windows NTFS jedoch sehr ähnlich), der nur in einem einzigen Dateisystem funktioniert. Zwei Hardlinks sind völlig identisch. Es gibt kein "Original". Ein Symlink hingegen zeigt auf einen Pfad , bei dem es sich tatsächlich um einen beliebigen Text handeln kann.
Benutzer1686
Wenn Symlinks so funktionieren, warum werden dann die Änderungen nicht angezeigt, wenn ich eine Datei ändere?
Sandro
-3

Versuche dies:

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

Ich vermute, das hat etwas mit dem Dateinamen des Ziels zu tun. Versuchen Sie, Anführungszeichen um den Ziellink zu verwenden.

Ich denke, Ihr Link muss auch ein vollständiger Pfad sein.


quelle
Ich habe die ausprobiert und immer noch nichts. Danke für die Idee!
Sandro
Es ist wahrscheinlich der Punktname des Ziels. Funktioniert es für andere Dateien?