2009-07-20 12:40:03 +0000 2009-07-20 12:40:03 +0000
101
101

Hoe verwijder ik een symbolische link naar een directory?

Ik heb een symbolische link gemaakt met het volgende commando:

ln -s ../test5

Ik wil het nu verwijderen maar mijn rm mislukt:

$ rm -Rf test5/
rm: cannot remove `test5/': Not a directory
$ rm test5/
rm: cannot remove directory `test5/': Is a directory
$ rmdir test5/
rmdir: test5/: Not a directory
$rm -r test5/
rm: cannot remove `test5/': Not a directory

$ls -l
 0 lrwxrwxrwx 1 peter peter 8 Jul 20 15:30 test5 -> ../test5/

Hoe kan ik mijn symbolische link verwijderen? (Ubuntu 8.10, bash)

Antwoorden (6)

122
122
122
2009-07-20 12:51:01 +0000

Verwijder de schuine streep achteraan:

Met prompt:

$ rm test5

Zonder prompt:

$ rm -f test5

21
21
21
2009-07-20 12:54:12 +0000

Probeer rm test5 (zonder de opleidingsschuine streep).

De schuine streep geeft aan dat ‘test5’ een direactory is, terwijl het eigenlijk een bestand is dat linkt naar een directory.

14
14
14
2009-07-20 13:06:36 +0000

Je kunt de schuine streep achteraan verwijderen:

$ rm test5

Hiermee verwijder je het bestand (dus de symlink).

Als alternatief kun je unlink gebruiken:

$ unlink test5

Ook hier moet je de slash achteraan weglaten, omdat je de symlink probeert te verwijderen, niet de directory.

0
0
0
2019-05-02 03:05:12 +0000

Het probleem in de OP is de / achteraan, dus test5/ geeft een foutmelding maar test5 werkt wel.

Ik gebruik liever unlink dan rm omdat mijn bedoeling duidelijker is en er geen kans is dat je per ongeluk de echte directory verwijdert in plaats van de link. Zorg ervoor dat er geen / achter de naam van de map staat, bijv:

unlink test5
0
0
0
2018-02-14 23:23:37 +0000

Soms, als je autocomplete gebruikt om de link die je wilt verwijderen een naam te geven, zie je geen schuine streep achteraan maar staat hij er ‘half’ en die onzichtbare schuine streep geeft dan nog steeds de verwijderfout als je die link probeert te verwijderen.

Dus in dat geval typ je de te verwijderen link karakter voor karakter uit als “test5” als bijv. rm test5.

-1
-1
-1
2009-07-20 12:42:27 +0000

Ik vraag het misschien stom, maar heb je rm -r geprobeerd? Omdat het een symbolische link is, zou het het doel niet moeten verwijderen.

Bewerken: Net geprobeerd, het is correct

Bewerken 2: rmdir zegt in de eerste regel van de man pagina dat het lege directories verwijdert. Ik zou denken dat omdat het een link is, het de directory bit heeft aangevinkt in zijn bestandseigenschappen, maar omdat rmdir niet vermoedt dat dit het geval is, spuugt het fouten uit. Gebruik gewoon rm -r