Ich habe ein Skript ausgeführt, das alle Dateien auf meinem Linux-System durchläuft und einige Metadaten darüber erstellt hat. Es hat einen Fehler ausgelöst, als es auf eine unterbrochene symbolische Verknüpfung gestoßen ist.
Ich bin neu bei * nix, aber ich habe die Hauptidee hinter dem Verknüpfen von Dateien und wie kaputte Links entstehen. Soweit ich weiß, sind sie das Äquivalent von Müll auf der Straße. Dinge, die ein Programm, das ich entferne, nicht klug genug war, um dem Paketmanager mitzuteilen, dass sie existieren und dazu gehören, oder Dinge, die bei einem Upgrade zurückgeblieben sind. Zuerst fing ich an, das Skript, mit dem ich sie überspringe, zu optimieren. Dann dachte ich: "Wir könnten sie immer löschen, wenn wir hier unten sind ..."
Ich verwende Ubuntu 14.04 (Trusty Tahr). Ich kann keinen Grund erkennen, dies nicht zu tun, aber gibt es einen Grund, warum dies tatsächlich eine schreckliche Idee sein könnte, bevor ich dies auf meinem Entwicklungssystem ausführe? Erfüllen defekte Symlinks einen Zweck, den ich nicht kenne?
Antworten:
Es gibt viele Gründe für unterbrochene symbolische Links:
Lösung: Entfernen Sie den fehlerhaften Symlink.
Lösung: Finden Sie das beabsichtigte Ziel und reparieren Sie den Link.
Lösung: Finden Sie das gewünschte Ziel und korrigieren Sie den Link.
Lösung: Keine, der Link ist nicht überall unterbrochen.
Auflösung: keine, der Link ist nicht für alle kaputt.
Auflösung: keine. In diesem Fall wäre das Entfernen des Links nachteilig.
Wenn Sie feststellen können, dass ein Symlink in die erste Kategorie fällt, löschen Sie ihn. Ansonsten enthalte dich.
Ein Programm, das Verzeichnisse rekursiv durchläuft und sich um den Inhalt von Dateien kümmert, sollte in der Regel unterbrochene symbolische Links ignorieren.
quelle
Entfernen Sie nicht blind alle baumelnden symbolischen Links. Sie sind möglicherweise nur zum Übertragen von Informationen vorhanden und möglicherweise sicherer als normale Dateien, da eine Symlink-Erstellung atomar ist.
Beispielsweise erstellt Firefox eine Sperrdatei "lock", die ein Symlink ist, dessen Wert eine Form wie "IP_address: + PID" hat.
quelle
Sowohl der fnord als auch der Gatling- Webserver verwenden das Unix-Dateisystem als Konfigurationsdatenbank (im Gegensatz zu beispielsweise Microsoft IIS, das die Windows-Registrierung verwendet, oder Apache, das eine Konfigurationsdatei für komplexe Analyse verwendet).
Virtuelle Hosts sind beispielsweise nur Verzeichnisse, und das Erstellen eines neuen virtuellen Hosts ist so einfach wie
Konfigurieren, welche Dateien geliefert werden sollen
Konfigurieren, welche Dateien als CGI ausgeführt werden sollen und welche als Serving?
Und zum Schluss (und relevant für diese Frage): Eine Umleitung konfigurieren?
Sie haben jetzt einen Symlink,
search.html
der angibt, welche Punkte nirgendwo liegen. Dies ist jedoch für die Funktionsweise Ihrer Website von entscheidender Bedeutung.quelle
Ein Symlink kann auf einen noch leeren Speicherort verweisen, um die Erstellung an einem bestimmten Dateisystemspeicherort oder -namen zu erzwingen.
Also nein - nicht blind entfernen.
quelle
Ein wesentlicher Nachteil beim Löschen veralteter symbolischer Links besteht darin, dass Sie den Verweis darauf verlieren, auf welche Stellen sie früher verwiesen haben, was sehr wertvoll sein kann!
Angenommen, ich habe einen symbolischen Link für eine Datei mit dem Namen "
send_to
", der auf eine nicht vorhandene Datei verweist ./Users/myname/tmp
/Users/myname/tmp
Mit dem symbolischen Link weiß ich, wo die Datei sein sollte . In diesem Fall sehe ich beispielsweise, dass es sich um ein temporäres Verzeichnis handelt, und wenn ich es "reparieren" muss, sollte ich ein temporäres Verzeichnis als Ziel in Betracht ziehen.
"
my_config
" Ebenso ist ein Link , der/etc/conf_file
darauf hinweist, "schlecht", weil derconf_file
in " " confirm_file umbenannt wurde, immer noch eine nützliche Information. Wenn Sie in das/etc
Verzeichnis gegangen sind und eine habenls
und gesehen haben, dass die aufgerufene Dateiconf_file
fehlt, aber dortconfirmation_file
war, haben Sie möglicherweise genug Informationen, um den Link jetzt zu reparieren.quelle
Zitieren von der Linux-Befehlszeile (das beste Buch aller Zeiten für Linux-Neulinge, das Sie hier kostenlos herunterladen können ):
Also nein, ich würde keine symbolischen Links löschen, da dies sicherlich Kopfzerbrechen mit sich bringt und Sie das Risiko eingehen, Ihr System ernsthaft zu beschädigen.
quelle