You are here : Start Windows allg. Hardlinks & Junctions

Hardlinks & Junctions

Hardlinks

Ein Hardlink ist im Gegensatz zu Softlink, dies sind eingene Dateien im Dateisystem mit der Endung *.lnk, ein weiterer Verweis auf die jeweilige Datei. Es wird mit einem Hardlink ein weiter Verzeichniseintrag erstellt.

Erst wenn alle Verzeichniseinträge (Hardlinks) zu dieser Datei gelöscht wurden und ebenfalls der 1. Eintrag wird die Datei entgültig gelöscht.

Windows bietet dies auf der CMD-Shell Ebene an. Mit dem Befehl "fsutil hardlink create NeuerDateiName AlterDateiName" wird ein Hardlink erzeugt. Einen Haken hat das Ganze. fsutil geht nur als Administrator. Hardlinks können nur auf der selben Festplatten-Partition angelegt werden

Junctions

Ähnlich verhält es sich mit Junctions. Dies sind weitere Einträge über ganze Ordner (Erstellen von symbolischen NTFS Orderverknüpfungen).
Junctions können über Festplatten und Partitions-Grenzen angelegt werden.

Programme:
Einfache Progrämmchen sind Link Shell Extension oder awxLink um Hardlinks und Junktion in Windows mit NTFS-Dateisystem zu erzeugen.

ln von Hermann Schinagl macht die auf der CMD-Shell excellent.
Microsoft bietet mit dem "Windows Server 2003 Resource Kit Tools" auch die Möglichkeit dies zu machen.

Die Datei Linkd.exe erledigt dies für Junktions auf Shell Ebene genauso zuverlässig aber nicht per Mausklick. Daselbe kann Junctions.exe oder Linkmagic

 

Wie wird Linkd bzw Junctions angewendet:

z.B Inhalt von c:\tmp soll nochmal unter c:\zeiteise zu erreichen sein.

Linkd Neuerpfad-Name Originalpfad

Linkd c:\zeitweise c:\tmp

 

 

Junction wieder löschen

Linkd c:\zeitweise /D

 

Probleme:

1.) Leerzeichen im Pfadnamen

Wenn ein Leerzeichen vorkommt muss der Pfad gekapselt werden

Linkd "c:\neues am PC" c:\tmp

 

2.) Pfadnamen über mehrere Unterordner

 

Linkd kann immer nur den letzen Ordner in Pfad als Junktion anlegen. Ggf. muss vorher über md der Ordner-Pfad angelegt werden

md c:\Gebaeude1\Stock3\Raum1

Linkd c:\Gebaeude1\Stock3\Raum1\tmp c:\tmp

 

3.) Deutsche Umlaute und ß

Noch Problematischer wird es mit den deutschen Sonderzeichen ä,ö,ü & ß.

Hier steigt Linkd ebenfalls aus.

Lösung: Die Kurzschreibweise von DOS verwenden.

Mittels eines VBS-Scriptes

Option Explicit

Dim s, sOriginal, sNeuerHarrdlink, fso, f, wsh

'On Error Resume Next
sOriginal = "c:\gebäudekomplex" 'Ziel-Ordner
sNeuerHarrdlink = "c:\gx"       'Neue Junktion

Set wsh = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(sOriginal)

If Err.Number > 0 Then

sNeuerHarrdlink = Err.Description & vbCrLF & sOriginal

wsh.Popup sNeuerHarrdlink, 10, "Parameter-Fehler", vbOKOnly + vbExclamation

WScript.Quit

End If

Set f = fso.GetFolder(sNeuerHarrdlink)
MsgBox "Typ: " & f.Type

If Err.Number = 0 Then

wsh.Popup sNeuerHarrdlink, 10, "Parameter-Fehler", vbOKOnly + vbExclamation

WScript.Quit

End If

sOriginal = f.ShortPath

s = """c:\Programme\Windows Resource Kits\Tools\Linkd"" " & sNeuerHarrdlink & " " & sOriginal
s = wsh.run(s, 1 , True)

 

 
JoomlaTheme.net