UND DOCH würde ich mir wünschen, dass Dateimanager symbolische Links/junction points besser unterstützen.
Im Prinzip sollten sie für meines Erachtens für alle Dateioperationen 3 Optionen für Verzeichnisse, die als symb. Links definiert wurden, anbieten:
1) Sybolische Links wie normale Verzeichnisse behandeln (wird so gehandhabt in z.B.DIR /S)
2) Symbolische Links wie Dateien behandeln (wird - wie wir jetzt also festgestellt haben vom Explorer so gehandhabt beim Löschen von Verzeichnissen: es wird nur der Link gelöscht)
3) Interaktivität - Explizites Fragen des Anwenders: "Bin da auf dieses Verzeichnis gestoßen: Was soll ich machen? (1) oder (2) (und wenn (1), wie soll ich symb. Links innerhalb dieses Verzeichnisses handhaben (auch wieder (1) (2) (3))?)
~~~~~~~
Um bei meinem Batchfile, welches eine Testsituation generiert bleiben
GENERATE.BAT
md 1
md 2
echo >2\important.txt Important and confidential content
md 1\1.2
makelink 1\1.2 2
Angenommen ich bin gerade im Verzeichnis MY_DIR in welchem ich dieses ausführe.
Was soll passieren, wenn ich jetzt MY_DIR sagen wir auf eine andere Partition kopieren will?
Im Normallfall denke ich, dass die Kopie eine exakte Kopie der Struktur des Quellverzeichnisses behält. Also inbes. dass IMPORTANT.TXT auch dort nur einmal gespeichert ist. Oder?
Wie verhält sich jetzt der Windows-Explorer?
Nunja, ein Bild sagt mehr als 1000 Worte:
Kopierversuch
Resultat
Ich habe das mehrfach versucht und sogar nach einem extra deswegen durchgeführten Neustart. Tritt dieses Phänomen bei Euch auch auf??
Seltsamerweise hatte ich - vielleicht fälschlich - in Erinnerung, dass er bei meinem ersten Versuch ein Resultat hervorgebracht hat, aber evtl. habe ich das mit meinem Explorer-Ersatzprogramm DOpus zuerst versucht...
Wie macht es dann also ein typisches(?) Explorer-Ersatzprogramm?
Ich verwende hier mein Standardprogramm, DirectoryOpus, mit dem ich ansich recht zufrieden bin und nicht einmal ansatzweise dessen Möglichkeiten nutze. In diesem Fall bin ich aber auch nicht wirklich zufrieden, auch wenn es bei dieser Standardaufgabe nicht abstürzt:
Es stürzt nicht ab, aber erzeugt im Zielverzeichnis keinerlei Links, sondern behandelt Links genau so, wie Verzeichnisse. Daher ex. die Datei IMPORTANT.TXT jetzt doppelt im Zielverzeichnis (genauer: Im Zielverzeichnis ex. jetzt die Dateien 1\1.2\important.txt, 2\important.txt und die entspr. Verzeichnisse).
Würde es sich z.B. um eine vertrauliche Datei handeln und der Anwender würde sie aus dem Verzeichnis 1 löschen in der Annahme, dass sie nur einmal existiert, hätte er sich geschnitten.
Oder er würde sie editieren in der Annahme, dass die Änderungen damit auch an allen darauf verweisenden Stellen geändert wären, wäre auch dies nicht der Fall.
Und würde es sich um eine hinreichend große Datei handeln, wäre durch die doppelte Speicherung unangenehm weniger Platz auf der Festplatte (oder der Kopiervorgang würde aufgrund Speichermangel abgebrochen).
Hier noch ein kleiner gemeiner Zusatz, angehängt an obiges Batchprogramm:
md 2\2.1
makelink 2\2.1 1
Dieses neue Batchfile, nennen wir es mal GENERATE+.bat, erzeugt eine zyklische Linkkette.
Beim der bisher erfahrenen Handling von DOpus - der Explorer stürzt wieder ab - hätte ich erwartet, ja fast gehofft, dass er aus dem Kopieren gar nicht mehr herauskommt, da ja jetzt 1\1.2->2, 2\2.1->1, 1\1.2->2, ...(->: zeigt auf)
Beim Kopieren (inkl. Unterverzeichnissen) von Verzeichnis 1 würde das Prg - so die Idee - also auch 1.2 kopieren wollen, was ja auf 2 gelinkt ist, dann auch wieder 2.1, was wiederum auf 1 zeigt.
Kurzum, es würde, da es aufgrund seiner Nicht-Unterscheidung zwischen echten Verzeichnissen und symb. Links endlos kopieren.
War aber nicht so. Offensichtlich wurde das Problem erkannt und das Kopieren bei symb. Links nicht fortgesetzt. Immerhin. Jetzt ex. im Zielverzeichnis dieselben Verzeichnisse und Dateien, die GENERATE.BAT erzeugt hat und zusätzlich noch ein leeres Verzeichnis 2\2.1
Neben den oben angesprochenen Problemen kommt jetzt noch hinzu, dass sich im Zielverzeichnis die Verzeichnisstruktur stark verkürzt hat.
Ex. im Quellverzeichnis der Pfad '...\1\1.2\2.1', gibt es diesen im Zielverzeichnis nicht mehr und der Zugriff auf die Datei '...\1\1.2\2.1\1.2\important.txt' im Quellverzeichnis geht im Zielverzeichnis dann natürlich auch nicht mehr.
Vielleicht kennt jemand also eine Möglichkeit saubere Kopien von Verzeichnisstrukturen zu erstellen, sei es jetzt mit einem komfortableren Explorer-Ersatzprogramm oder via Konsole. (Geht es vielleicht mit RoboCopy?)
Bisher bin ich mir nur bei einer Methode relativ sicher. Die zuvor erwähnte 1:1-Kopie einer Parititon (mit z.B. Paragon).
Beokmmt Ihr auch diese Abstürze? Mein System ist win7,x64...
Gruß,
Mdl
P.S.: So umfangreich war das alles nicht geplant...