Wie kann ich einen symbolischen Link löschen?

322

Ich habe einen Symlink mit erstellt mklink. Jetzt muss ich es ändern, aber ich kann nicht herausfinden, wie ich es löschen soll, damit ich es korrekt neu erstellen kann.

Ben V
quelle

Antworten:

557

Sei sehr vorsichtig.

Wenn Sie einen symbolischen Link haben, der ein Verzeichnis (erstellt mit mklink /d) ist, delwerden mit alle Dateien im Zielverzeichnis (das Verzeichnis, auf das der Link verweist) und nicht nur der Link gelöscht.

LÖSUNG: rmdir Auf der anderen Seite wird nur die Verzeichnisverknüpfung gelöscht, nicht die, auf die die Verknüpfung verweist.

eddyq
quelle
103
Nachdem dies soeben aus Versehen geschehen ist (der gesamte Inhalt des Zielordners wurde gelöscht), ist dies ein wichtiger Tipp.
Simon Gillbee
4
Diese Antwort ist nicht ganz richtig. Dellöscht Dateien, keine Ordner. Daher würden Sie delden Link nicht zum Löschen verwenden.
AMissico
12
Aber nicht rmdirin PowerShell verwenden. Wickeln Sie es cmdzuerst ein. Siehe meine Antwort unten ...
Northben
4
Wie wäre es, wenn ich es über den Windows Explorer lösche?
Cheung
8
Dort gehen Microsoft-Mitarbeiter wieder hin und versuchen nur, mein Leben, meine Karriere und mein Windows-Betriebssystem zu ruinieren.
ThorSummoner
62

Um mit mklink /ddiesem Tool erstellte symbolische Verzeichnisverknüpfungen zu entfernen , müssen Sie nur die symbolische Verknüpfung im Explorer löschen.

ddelrio1986
quelle
27
+1, um den Leuten mitzuteilen, dass es sicher ist, symbolische Links über den Windows Explorer zu löschen.
AMissico
3
Es ist richtig. Das mache ich die ganze Zeit. Habe es gerade nochmal getestet.
ddelrio1986
2
Das hat auch bei mir funktioniert. Ich habe den Link gelöscht, nicht den Quellordner, mit dem verlinkt wurde. Vielleicht ist das der Haken.
R Hughes
3
Es ist sicher, es einfach mit Rechtsklick -> Löschen zu löschen. Dadurch wird der verknüpfte Ordner NICHT gelöscht.
Hexo
mklink / d Funktionierte unter Windows 7 nicht. Ich habe möglicherweise eine alte Version verwendet
abelito
47

Verwenden Sie für einen Symlink zu einer Datei del. mklink /dVerwenden Sie für einen Symlink zu einem mit erstellten Verzeichnis rmdir.

George V. Reilly
quelle
5
Warnung: "del" löscht die Datei und nicht nur den Link.
WoodenKitty
6
Die Warnung von @Tristan ist nicht korrekt, diese Antwort ist korrekt. Getestet unter Windows 7.
jiggunjer
1
In Windows 7 SP1 (64-Bit) kann eine symbolische Verknüpfung, die entweder auf eine Datei (z. B. mit MKLINK erstellt) oder auf ein Verzeichnis (MKLINK / D) verweist, im Windows Explorer mit der normalen Windows-GUI-Option "Löschen" gelöscht werden , ohne das Ziel zu löschen. Selbst eine im Explorer gelöschte JUNCTION (z. B. mit dem Befehl MKLINK / J erstellt) löscht weder das Zielverzeichnis noch dessen Inhalt. Wenn es nicht leer ist, kann das Zielverzeichnis nicht einmal mit dem Befehl DEL Junction an der Eingabeaufforderung gelöscht werden . Heute getestet.
Ed999
Unter Windows Server 2012 wurde der Verzeichnisinhalt entfernt, auf den mein Symlink verwiesen hat ...
C Bauer,
Sie sollten Leute davor warnen, rmdirLinks von Powershell zu verwenden!
NH.
28

In Powershell nicht verwenden rmdir! Verwenden Sie cmd /c rmdir .\Targetstattdessen. Ich habe es selbst getestet und hier bestätigt: http://kristofmattei.be/2012/12/15/powershell-remove-item-and-symbolic-links/

Northben
quelle
In diesem Blog wird die Bedeutung von "Ziel" verwechselt. Dabei handelt es sich um das tatsächliche Verzeichnis, auf das der Link verweist, und auf das die Benutzer beim Entfernen des Links im Allgemeinen nicht löschen möchten.
Kreemoweet
2
rmdirist ein interner Befehl von cmd.exe , also offensichtlich, um ihn von anderen Shells aus aufzurufen, die Sie brauchen cmd /coder cmd /k. rmdirin PowerShell ist nur ein Alias ​​fürRemove-Item
phuclv
24

Es gibt eine andere von mir getestete und sicher zu verwendende Lösung. Fügen Sie einfach den richtigen Ordner hinzu (Beispiel: foo wird foo_), löschen Sie einfach Ihren symbolischen Link und entfernen Sie dann _ aus Ihrem wahren Ordner.

vcorp
quelle
2
Ja, dies ist die 100% sicherste Lösung, nachdem Sie wissen, dass Powershell nichts über rmdir
test30 sagt.
Dies ist eine clevere Vorsichtsmaßnahme. +1
Hanna
Warnung: Ich glaube nicht, dass dies unter Win10 funktioniert, da Verknüpfungen beim Umbenennen korrigiert werden. (Zumindest klassische Shortcuts) Nicht getestet.
Hexo
Ich habe das nur für den Fall getan. Nachdem ich den Zielordner umbenannt hatte, schlug der Link symbolink fehl, als ich versuchte, darauf zuzugreifen, sodass ich ihn problemlos löschen konnte.
Andrew
21

mklink kann nicht zum Löschen von symbolischen Links verwendet werden. Um eine symbolische Verknüpfung zu entfernen, löschen Sie sie einfach so, als würden Sie eine normale Datei entfernen. Geben Sie beispielsweise den folgenden Befehl ein, um den oben erstellten symbolischen foo-Link zu löschen:

Wenn der Link ein fester Link zu einem Verzeichnis ist:

C:\test>rmdir foo

oder WENN der Link auf eine Datei zeigt (im Gegensatz zu einem Verzeichnis)

C:\test>del foo

Quelle: http://www.mydigitallife.info/2007/05/22/create-symbolic-links-hard-links-and-directory-junctions-in-vista-with-mklink/

Daisetsu
quelle
2
Stellen Sie einfach sicher, dass Sie es nicht mit del /Soder Explorer löschen .
Hallo71
1
Siehe die Antwort von eddyq weiter unten, da die Verwendung von del für einen Link zu einem Verzeichnis nicht funktioniert und stattdessen versucht, den Inhalt des Ordners zu löschen.
Jpierson
2
Hardlinks zu Verzeichnissen existieren nicht. Ich denke, Sie wollten Symlink sagen.
Brilliand
0

In meinem Fall (Windows 10) nach dem Erstellen der symbolischen Verknüpfung mit

MKLINK /D "C:\Users\username\Dropbox\MyProject" "C:\SourceProject"

Durch Löschen über Löschen mit dem Datei-Explorer oder der Tastatur-Löschtaste wird auch das ursprüngliche Verzeichnis gelöscht .

Sie sollten den Link über die Eingabeaufforderung entfernen.

C:\Users\username\Dropbox>rd /s MyProject

Einzelheiten zum Befehl rd finden Sie unter https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/rd

tetedp
quelle
0

Am einfachsten ist es, den Ordner (auf den die symbolische Verknüpfung verweist) an einen anderen Ort (in den übergeordneten Ordner) zu verschieben und dann die symbolische Verknüpfung zu löschen. Es werden keine Dateien beschädigt!

Netgoblin
quelle
0

Ich habe diese Link Shell Extension installiert . Damit haben Sie 2 Methoden.

METHODE 1

Erstellen Sie es über das gezeigte Kontextmenü und löschen Sie es über den Datei-Explorer.

Testen Sie mit einem Ordner wie C:\Windows\Logsabgebildet oder ähnlich. Ich erstelle gerade ein Verzeichnis aller möglichen Speicherorte von temporären Dateien, die gelöscht werden sollen, und ich wollte einen zentralen Ordner, in dem ich deren Größe über symbolische Links überwachen kann.

Bitte beachten Sie: Der weiße Bildschirm ist nur die Benutzerkontensteuerung .

Aus Explorer-Methode löschen

METHODE 2

Der sicherste Weg, hier AFAIK undokumentiert .

Klicken Sie diesmal mit der rechten Maustaste auf den erstellten symbolischen Link ( in den oben gezeigten Schritten ) und klicken Sie auf Eigenschaften. Wechseln Sie dann zur Link PropertiesRegisterkarte.

Hinweis: Diese Shell-Erweiterung hat diese Registerkarte hinzugefügt.

Bevor ich weitermache, gibt es hier noch viele weitere Informationen. Auf der Homepage sind auch die x64- und 32-Bit-Versionen zu finden .

Also, um fortzufahren, hier können Sie alles in das Zielfeld hinzufügen , solange es ist anders an das ursprüngliche Ziel.


  1. Hier ein Vorher mit dem Ziel als C:\Windows\Logs Ziel vor

  2. Hier ist ein After mit dem Ziel als C:\Windows\Logs_, beachten Sie das Extra _am Ende.

    Ziel nach

  3. Drücken Sie OK

  4. Sie können dies erneut überprüfen, indem Sie die oben beschriebenen Schritte 1-3 durchgehen, um sicherzustellen, dass das Problem nicht mehr besteht. Diesmal wird eine Fehlermeldung angezeigt, wenn Sie auf die Link PropertiesRegisterkarte klicken, sodass der Link jetzt nicht mehr funktioniert.

  5. Es ist jetzt sicher (r), den symbolischen Link zu löschen als Methode 1 IMHO.


Aber! Beide Methoden funktionieren hier, sodass die Wahl des Benutzers völlig frei liegt. Ich mag die Eigenschaftsmethode, über die ich freudig gestolpert bin, sodass Sie 100% sicher sind, dass die Verknüpfung unterbrochen ist, indem Sie Schritt 4 oben ausführen.

Hier ist ein GIF von mir, wie ich einen symbolischen Link erstelle, indem ich mit der rechten Maustaste einen Ordner in einen anderen ziehe und im Untermenü die Option auswähle, einen symbolischen Link zu erstellen.

Befolgen Sie zum Löschen einfach die obigen 1-5 Schritte von Methode 2 oder Methode 1.

So erstellen und löschen Sie einen symbolischen Link mithilfe der properties-Methode

Bitte beachten Sie: Der weiße Bildschirm ist nur die Benutzerkontensteuerung .

Hier erfahren Sie, wie Sie Syn-Links mit der properties-Methode erstellen und löschen

Stephen Sherry
quelle