Wie kann ich auf diese Weise auf Verzeichnisse zugreifen?


1

Ich habe C:\HardDrive1\name\und D:\HardDrive2\name. Ich möchte (zumindest schreibgeschützt) auf diese Ordner unter zugreifen I:\name(zum Beispiel). Ist das unter Windows möglich? Interessiert mich auch, ob es einen UNIX-Weg gibt, dies zu tun?


Windows 7 (und möglicherweise Vista) hat Symlinks. ältere Fenster haben Verbindungsstellen. In diesem Fall möchten Sie möglicherweise bestimmte Versionen angeben.
Geselle Geek

Antworten:



1

Unter Windows 7 und Vista gibt es das Befehlszeilen-Dienstprogramm mklink, mit dem symbolische Verknüpfungen erstellt werden können. Im Übrigen werden junctionvon sysinternals so genannte Abzweigungspunkte erstellt .

Einige Dinge zu beachten:

  • Verknüpfungen und symbolische Verknüpfungen sind Softlinks zwischen zwei Verzeichnissen.
  • Verwenden Sie niemals rekursive Löschtools, um eine Junction zu entfernen (Windows 2000, XP). Dadurch werden zuerst die Dateien in der Junction gelöscht (und somit die tatsächlichen Dateien gelöscht). Verwenden Sie das Werkzeug rmdir, um Knotenpunkte zu löschen.
  • Wenn Sie einen symbolischen Link löschen (erstellt mit mklink, Windows Vista und 7), verschwindet nur dieser.

Wenn Sie das reale Verzeichnis löschen, ist die Verknüpfung Junction / Symbolic von nun an ein leeres Verzeichnis.

  • Es ist obligatorisch, dass beide Partitionen als NTFS formatiert sind , um Junctions oder Symlinks zu erstellen .

Verwendungszweck:

Erstellen Sie zunächst die Ordner, auf die die Junction (s) / Symlink (s) in diesem Beispiel verweisen, I:\name1und I:\name2. Junctions benötigen einen leeren NTFS-Ordner, auf den verwiesen werden soll!

C:\>mklink /d "I:\name1" "C:\HardDrive1\name"
C:\>mklink /d "I:\name2" "D:\HardDrive2\name"

Oder unter XP mit junction.exe

C:\>junction /d "I:\name1" "C:\HardDrive1\name"
C:\>junction /d "I:\name2" "D:\HardDrive2\name"

Das Problem ist, dass ich nicht nur zwei Links erstellen möchte I:\name1 I:\name2. Was ich wirklich brauche, ist der Zugriff auf zwei (oder vielleicht mehr) Pfade von demselben (virtuellen) Pfad. Eine mögliche Lösung besteht darin, eine Verknüpfung (Junction) für jede Datei (Ordner) C:\HardDrive1\name D:\HardDrive2\name Z:\HardDrive1000\nameim Zielverzeichnis zu erstellen I:\name. Das funktioniert einwandfrei. Aber diese hässliche Hack IMO (In meinem Fall muss ich 100K Links pro Laufwerk erstellen).
ShyMan

Sie können nicht zwei Junctions auf genau denselben Ordner verweisen. Mein Vorschlag ist, verschieben Sie einfach die Ordner C: \ HardDrive1 bis C: \ HardDrive1000 in einen Ordner C: \ HardDrives und Junction / mklink das. Jetzt brauchen Sie nur noch eine pro Laufwerk, und Sie können trotzdem maximal 26 Laufwerke (von A bis Z) verwenden
sinni800

@sinni, Quatsch. Sie können beliebig viele Links - ob Symlinks oder Junctions - auf denselben Speicherort verweisen. (Letztendlich sind beide nur Analysepunkte, die den textuellen Pfad ihres Ziels enthalten, keine tiefe Magie. Aufgrund dessen und der Tatsache, dass Festplatten physisch bewegt werden können, ist die Implementierung solcher willkürlichen Einschränkungen nicht nur unnötig, sondern auch unmöglich.)
Grawity

@sinni, es ist auch nicht zwingend erforderlich, dass das Zieldateisystem NTFS ist. Symlinks und Junctions sind unidirektionale Zeiger auf einen beliebigen Textpfad, und obwohl sie nur in NTFS erstellt werden können, können sie auf praktisch alles verweisen (Symlinks können sogar auf Netzwerkfreigaben verweisen).
Grawity

@sinni, um meinen ersten Kommentar zu verdeutlichen: Ein Link kann auf genau ein Ziel verweisen, aber auf ein Ziel kann eine beliebige Anzahl von Links verweisen.
Grawity
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.