Frage

Ich habe einen symbolischen Link zu einem wichtigen Verzeichnis. Ich möchte dieses Symlink, um loszuwerden, während das Verzeichnis dahinter zu halten.

habe ich versucht, rm und wieder rm: cannot remove 'foo'.
Ich habe versucht, rmdir und bekam zurück rmdir: failed to remove 'foo': Directory not empty
Ich fortgeschritten dann durch rm -f, rm -rf und sudo rm -rf

Dann ging ich meine Back-ups zu finden.

Gibt es eine Möglichkeit der Symlink, um loszuwerden, mit heraus, das Kind mit dem Bade ausschütten Wegwerfen?

War es hilfreich?

Lösung

# this works
rm foo
# versus
rm foo/

Grundsätzlich müssen Sie es sagen, eine Datei zu löschen, kein Verzeichnis löschen. Ich glaube, der Unterschied zwischen rm und rmdir wegen der Unterschiede in der Art und Weise besteht die C-Bibliothek behandelt jeweils.

Auf jeden Fall sollte die erste Arbeit, während die zweiten beschweren sollte über foo ein Verzeichnis zu sein.

Wenn es nicht wie oben nicht funktioniert, dann Berechtigungen überprüfen. Sie benötigen die Erlaubnis, das Verzeichnis enthält schreiben, um Dateien zu entfernen.

Andere Tipps

Mit dem "entkoppeln" Befehl und stellen Sie sicher, nicht , um das / am Ende haben

$ unlink mySymLink
  

unlink () löscht einen Namen aus dem Dateisystem. Wenn dieser Name das letzte Glied in einer Datei war und keine Prozesse haben die Datei öffnen Sie die Datei gelöscht wird und der Raum wurde mit zur Wiederverwendung zur Verfügung.   Wenn der Name der letzte Link zu einer Datei, sondern alle Prozesse haben immer noch die Datei, um die Datei zu öffnen, bis die letzte aufgerufene Dateideskriptors bestehen bleiben, um es geschlossen ist.

Ich denke, dies problematisch sein kann, wenn ich es richtig bin zu lesen.

  

Wenn der Name auf einen symbolischen Link bezeichnet der Link entfernt wird.

     

Wenn der Name bezeichnet eine Buchse, Fifo oder ein Gerät der Name für sie entfernt wird, sondern Prozesse, die das Objekt geöffnet haben, können weiterhin benutzen.

https://linux.die.net/man/2/unlink

rm sollte die symbolische Verbindung entfernen.

skrall@skrall-desktop:~$ mkdir bar
skrall@skrall-desktop:~$ ln -s bar foo
skrall@skrall-desktop:~$ ls -l foo
lrwxrwxrwx 1 skrall skrall 3 2008-10-16 16:22 foo -> bar
skrall@skrall-desktop:~$ rm foo
skrall@skrall-desktop:~$ ls -l foo
ls: cannot access foo: No such file or directory
skrall@skrall-desktop:~$ ls -l bar
total 0
skrall@skrall-desktop:~$ 

Verwenden rm symlinkname aber nicht mit einem Schrägstrich am Ende umfasst (nicht verwenden: rm symlinkname/). Sie werden dann gefragt, ob Sie den Symlink entfernen möchten, y ja zu beantworten.

es tatsächlich Angenommen ist ein symbolischer Link,

$ rm -d symlink

Es sollte herausfinden, aber da es nicht können wir den latenten Code aktivieren, die für einen anderen Fall vorgesehen war, die nicht mehr existiert, aber hier geschieht, das Richtige zu tun.

Wenn rm kann nicht einen Symlink entfernen, müssen Sie vielleicht an den Berechtigungen für das Verzeichnis suchen, die den symbolischen Link enthält. Zum Entfernen von Verzeichniseinträgen, benötigen Sie die Berechtigung für das Verzeichnis enthält schreiben.

Ihr Setup Unter der Annahme, ist so etwas wie: ln -s /mnt/bar ~/foo, dann sollten Sie in der Lage sein, einen rm foo ohne Problem zu tun. Wenn Sie nicht, stellen Sie sicher, dass Sie der Besitzer des foo sind und haben die Erlaubnis zu schreiben / Ausführen der Datei. Entfernen foo wird bar nicht berühren, wenn Sie es rekursiv tun.

Auf CentOS, läuft nur rm linkname und es wird fragen „symbolischen Link entfernen?“. Geben Sie Y und Enter , wird die Verbindung weg und das Verzeichnis sicher sein.

Ich hatte dieses Problem mit MinGW (eigentlich Git Bash) auf einem Windows-Server ausgeführt wird. Keine der oben genannten Vorschläge schien zu funktionieren. Am Ende hat eine Kopie des Verzeichnisses im Fall machte dann den Soft-Link in Windows Explorer gelöscht dann das Element in dem Papierkorb gelöscht. Es machte Geräusche wie es die Dateien wurde das Löschen aber nicht. obwohl Sie einen Backup machen!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top