Come posso eliminare un collegamento simbolico?


322

Ho creato un collegamento simbolico utilizzando mklink. Ora ho bisogno di cambiarlo ma non riesco a capire come eliminarlo in modo da poterlo ricreare correttamente.

Risposte:


557

Essere molto attenti.

Se si dispone di un collegamento simbolico che è una directory (creata con mklink /d), l'utilizzo deleliminerà tutti i file nella directory di destinazione (la directory a cui punta il collegamento), anziché solo il collegamento.

SOLUZIONE: rmdir d'altra parte eliminerà solo il collegamento alla directory, non ciò a cui punta il collegamento.


103
Dopo averlo fatto accidentalmente (cancellato il contenuto completo della cartella di destinazione), questo è un suggerimento importante.
Simon Gillbee,

4
Questa risposta non è del tutto accurata. Delelimina i file, non le cartelle. Pertanto, non si utilizzerà delper eliminare il collegamento.
AMissico,

12
Ma non utilizzare rmdirin PowerShell. Avvolgilo per cmdprimo. Vedi la mia risposta qui sotto ...
Northben,

4
Che ne dici se lo elimino tramite Windows Explorer ????
Cheung,

8
Lì i dipendenti Microsoft tornano, solo cercando di rovinarmi la vita, la carriera e il sistema operativo Windows.
ThorSummoner,

62

Per rimuovere i collegamenti simbolici di directory creati con mklink /desso è sicuro eliminare semplicemente il collegamento simbolico in Explorer.


27
+1 per dire alle persone che si salva per eliminare il collegamento simbolico tramite Esplora risorse.
AMissico

3
È corretto. Lo faccio tutto il tempo. Ho appena provato di nuovo in questo momento.
ddelrio1986,

2
Questo ha funzionato anche per me. ho eliminato il collegamento non la cartella di origine a cui era collegato. forse quella cattura.
R Hughes,

3
È sicuro semplicemente cancellarlo con il tasto destro del mouse -> Elimina. Questo NON cancella la cartella collegata.
Hexo,

mklink / d Non ha funzionato per me su Windows 7 .. Forse avrei usato una versione precedente
abelito

47

Per un collegamento simbolico a un file, utilizzare del. Per un collegamento simbolico a una directory creata con mklink /d, utilizzare rmdir.


5
Attenzione: "del" eliminerà il file e non solo il collegamento.
WoodenKitty,

6
L'avvertimento di @Tristan non è corretto, questa risposta è accurata. Testato su Windows 7.
Jiggunjer,

1
In Windows 7 SP1 (64 bit), un collegamento simbolico che punta a un file (ad esempio creato utilizzando MKLINK) o a una directory (MKLINK / D) può essere eliminato in Esplora risorse di Windows, utilizzando la normale opzione "elimina" della GUI di Windows , senza eliminare l'obiettivo. Anche una JUNCTION (ad es. Creata usando il comando MKLINK / J), se cancellata in Explorer, non cancellerà la directory di destinazione né i suoi contenuti. Se non vuoto, la directory di destinazione non può nemmeno essere eliminata utilizzando il comando DEL junction al prompt dei comandi. Testato oggi.
Ed999,

Su Windows Server 2012, questo ha rimosso i contenuti della directory che il mio link simbolico era indicato ...
C Bauer,

Dovresti avvisare le persone di non rmdircollegarsi a Powershell!
NH.

28

In Powershell, non usare rmdir! Usa cmd /c rmdir .\Targetinvece. L'ho provato io stesso e l'ho confermato qui: http://kristofmattei.be/2012/12/15/powershell-remove-item-and-symbolic-links/


Quel blog confonde il significato di "Target", che è la directory effettiva a cui punta il link e che la gente generalmente desidera evitare di eliminare mentre rimuove il link.
kreemoweet,

2
rmdirè un comando interno di cmd.exe , quindi ovviamente per chiamarlo da altre shell necessarie cmd /co cmd /k. rmdirin PowerShell è solo un alias diRemove-Item
phuclv

24

C'è un'altra soluzione testata da me e sicura da usare. basta aggiungere alla cartella reale _ (esempio: foo diventato foo_) quindi eliminare semplicemente il collegamento symbolik, quindi rimuovere _ dalla cartella reale.


2
sì, questa è la soluzione più sicura al 100% dopo aver saputo che PowerShell non dà come ** t su rmdir
test30

Questa è una precauzione intelligente. +1
Hanna

Avvertenza: non penso che QUESTO POTREBBE non funzionare su Win10 poiché corregge i collegamenti al momento della ridenominazione. (Almeno scorciatoie classiche) Non testato però.
Hexo,

L'ho fatto per ogni evenienza. Dopo aver rinominato la cartella di destinazione, il collegamento simbolink non è riuscito quando ho provato ad accedervi, quindi ho potuto eliminarlo senza preoccuparmi.
Andrew,

21

mklink non può essere usato per cancellare collegamenti simbolici. Per rimuovere un collegamento simbolico, eliminalo semplicemente come se stessi rimuovendo un file normale. Ad esempio, per eliminare il collegamento simbolico foo creato sopra, immettere il seguente comando:

Se il collegamento è un collegamento reale a una directory:

C:\test>rmdir foo

altrimenti, SE il collegamento punta a un file (al contrario di una dir)

C:\test>del foo

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


2
Assicurati di non eliminarlo con del /So Explorer.
Hello71,

1
Vedi la risposta di eddyq di seguito perché l'uso di del per un collegamento creato a una directory non funzionerà e tenterà invece di eliminare i contenuti della cartella.
jpierson,

2
Non esistono collegamenti diretti alle directory. Penso che volevi dire symlink.
Brilliand,

0

Nel mio caso (Windows 10), dopo aver creato il collegamento simbolico usando

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

e l' eliminazione tramite cancellazione mediante Esplora file o il tasto di eliminazione tastiera elimina anche la directory originale .

Quello che dovresti fare è rimuovere il link tramite il prompt dei comandi.

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

Per dettagli sul comando rd: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/rd


0

Il modo più semplice è spostare la cartella (a cui punta il collegamento simbolico) in un'altra posizione (nella cartella principale) e quindi eliminare il collegamento simbolico. Nessun file verrà danneggiato!


0

Ho installato questa estensione Shell di collegamento . Con questo, hai 2 metodi.

METODO 1

Crealo usando il menu contestuale come mostrato ed eliminandolo tramite Esplora file.

Prova con una cartella come C:\Windows\Logsquella mostrata o simile. Sto solo creando una directory di tutte le possibili posizioni dei file temporanei da eliminare e volevo una cartella centrale in cui potessi monitorarne le dimensioni tramite collegamenti simbolici.

Nota: lo schermo diventa bianco è solo l' UAC .

elimina dal metodo explorer

METODO 2

Il modo più sicuro senza documenti qui AFAIK .

Sul collegamento simbolico creato ( nei passaggi mostrati sopra ), fai clic con il pulsante destro del mouse questa volta e fai clic su Proprietà, quindi vai alla Link Propertiesscheda.

Nota: questa estensione della shell ha aggiunto questa scheda.

Prima di continuare, molte più informazioni possono essere trovate qui , inoltre, sulla homepage sono le versioni x64 e 32 bit .

Quindi, per continuare, qui puoi aggiungere qualsiasi cosa al campo target purché sia diverso dal target originale.


  1. Ecco un prima con l'obiettivo come C:\Windows\Logs obiettivo prima

  2. Ecco un dopo con l'obiettivo come C:\Windows\Logs_, notare il extra _alla fine.

    obiettivo dopo

  3. stampa OK

  4. Puoi verificarlo di nuovo andando sopra gli stessi 1-3 passaggi sopra per assicurarti che si sia bloccato, questa volta riceverai un messaggio di errore quando fai clic sulla Link Propertiesscheda in modo che il collegamento sia ora interrotto.

  5. Ora è sicuro (r) eliminare il collegamento simbolico rispetto al metodo 1 IMHO.


Ma! Entrambi i metodi funzionano qui, quindi dipende interamente dalla scelta dell'utente. Mi piace il metodo delle proprietà su cui mi sono imbattuto felicemente, quindi sei sicuro al 100% che il collegamento venga interrotto usando il passaggio 4 sopra.

Ecco una mia gif che crea un link simbolico con il tasto destro del mouse trascinando una cartella in un'altra e scegliendo l'opzione per creare un link simbolico nel sottomenu.

Per eliminare, basta seguire i 1-5 passaggi precedenti del metodo 2 o seguire il metodo 1.

Come creare ed eliminare un collegamento simbolico usando il metodo properties

Nota: lo schermo diventa bianco è solo l' UAC .

gif su come creare ed eliminare i collegamenti syn utilizzando il metodo properties

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.