So entfernen Sie symbolische Verknüpfung

139

Ich habe versucht, diesen symbolischen Link zu erstellen:

sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin

aber ich habe versehentlich geschrieben:

sudo ln -s /usr/share/php,yad,in /var/www/phpmyadmin

Jetzt möchte ich das korrigieren, aber es heißt, dass bereits eine symbolische Verknüpfung besteht.

James
quelle

Antworten:

165

Mit können Sie rmden Symlink löschen.

Beispiel:

-rw-rw-r-- 1 2014-01-02 09:21 tmo
lrwxrwxrwx 1 2014-01-02 09:21 tmo2 -> tmo

Dann ...

 rm tmo2

Entfernt den Symlink.

Rinzwind
quelle
1
Zugang verweigert. Das habe ich zuerst eingegeben: sudo ln -s / usr / share / php, yad, in / var / www / phpmyadmin
James
6
Erlaubnis verweigert: Sie wissen, dass Sie sudo benötigen, wenn Sie es in einer Situation verwenden möchten, in der Ihnen die Datei nicht gehört? Das gilt auch für 'rm'.
Rinzwind
2
Ich habe es rm / usr / bin / python und entfernte meine Python aus Ubuntu: S
2
@ RaheelKhan Nein, hast du nicht. Du hast ein SYMLINK entfernt. Python verlässt sich jedoch auf diesen Symlink. Wenn Sie diesen Symlink neu erstellen, ist Python wieder da.
Rinzwind
1
Ich versuche diesen Befehl, aber es scheint, dass meine Datei entfernt wurde, ich möchte meine Datei nicht entfernen
saeed masoomi
24

Sie können auch den unlinkBefehl versuchen .
unlinkist ein Alias-Befehl von rm. wird daher rm <symlink>genauso funktionieren wieunlink <symlink>

Hier ist die Referenzverbindung .

Hakunami
quelle
9
unlinkhat insbesondere nichts mit symlinks zu tun. Siehe serverfault.com/a/38817/64085
Matthew Read,
@ Kushvarma, aber es funktioniert. hast du das versucht
Hakunami
1
die antwort mag richtig sein, wird aber neulinge verwirren
mit
" unlinkist ein Alias-Befehl von rm" [Citation Needed]
mwfearnley
12

Angenommen, Sie wollten Folgendes tun:

sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin/

aber versehentlich tat:

sudo ln -s /usr/share/somethingelse /var/www/phpmyadmin/

Um dies zu korrigieren, navigieren Sie einfach zu dem Ordner, in dem sich der Link befindet, und heben Sie die Verknüpfung auf

cd /var/www/phpmyadmin/  
~:# unlink somethingelse
Metals Marata
quelle
8

Sie werden Folgendes verwenden, um den symbolischen Link zu entfernen

sudo rm path/to/the/link

Erläuterung

  • rmist der Terminalbefehl zum Entfernen einer Datei. Siehe rm --helpfür weitere Optionen , die es zu nehmen.
  • sudowird verwendet, weil der symbolische Link mit erstellt wurde sudo. Die Datei gehört daher zu root und Ihr normaler Benutzer kann sie nicht bearbeiten / entfernen, da sie weniger "Macht" hat als root.
  • path/to/the/linkwird /usr/share/php,yad,inauf Ihren Kommentar basieren.

Extra

Siehe auch diesen Beitrag und meinen Kommentar zur ersten Antwort, um auf phpmyadmin zuzugreifen, wenn nach der Installation ein nicht gefundener Fehler auftritt.

chesedo
quelle
Ihr Kommentar ist nicht generisch. Bitte benutze immer den generischen Befehl, um zu zeigen, wie man den symbolischen Link entfernt
kushvarma
generisch bedeutet, es sollte für alles gültig sein, so wie Ihr Befehl spezifisch für / usr / share / php ist, aber es sollte rm <symlink>
kushvarma 06.07.15
@ Kushvarma, danke. Ich habe die Antwort allgemeiner
formuliert
1

Tut mir leid, dass ich nekroposte, aber ich fand diese Frage, als ich nach einer Antwort auf dieses Problem suchte.

Eine kleine Einschränkung, die ich gefunden habe, war, dass ich versucht habe, auf einem Symlink zu laufen, rmund dass ich unlinkdie Fehlermeldung erhalten habe, dass es sich um ein Verzeichnis handelt.

$ rm folder_name/
rm: cannot remove ‘folder_name/’: Is a directory
$ unlink folder_name/
unlink: cannot unlink ‘folder_name/’: Not a directory

Um den Symlink zu entfernen, habe ich verwendet, unlink folder_nameaber es ist fehlgeschlagen, wenn /beispielsweise ein Trailing aufgetreten ist, unlink folder_name/da es sich um ein Verzeichnis handelt, nicht um die Datei, die Sie entfernen möchten.

Zufälliger Held
quelle
0

Ich habe hier gestoppt, weil ich ein entfernen musste dpkg-divertund das neue Paket erst installiert wird, wenn es entfernt wurde.

Also, wenn Sie so etwas getan haben:

sudo dpkg-divert --add --rename --divert /usr/bin/gcc.real /usr/bin/gcc

Sie müssen es mit so etwas entfernen:

sudo dpkg-divert --remove /usr/bin/gcc.real
Sudipta Basak
quelle