[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:ln: Verknüpfungen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [github:brandt/symlinks:symlinks] {en} hilft, den Umgang mit [wikipedia:Symbolische_Verknüpfung:symbolischen Verknüpfungen] (auch „Softlinks“ genannt) zu vereinfachen. Es findet Verknüpfungen in Ordnern und optional deren Unterordnern und klassifiziert diese nach Art (absolut oder relativ) und Status. Darüber hinaus kann man tote Verknüpfungen automatisch löschen, unsauber erstellte oder überlange reparieren oder absolute in relative umwandeln lassen. = Installation = Das Programm kann direkt aus den offiziellen Paketquellen installiert werden [1]: {{{#!vorlage Paketinstallation symlinks }}} = Bedienung = Man startet das Werkzeug mit den gewünschten Optionen und dem Verzeichnis, welches durchsucht werden soll, in einem Terminal [2]: {{{#!vorlage Befehl symlinks [OPTIONEN] VERZEICHNIS(SE) ... }}} {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" rowclass="titel"> symlinks-Optionen +++ Verfügbare Optionen Bedeutung +++ `-v` zeigt auch relative Verknüpfungen an, welche sonst ausgelassen werden +++ `-s` zeigt auch überlange Verknüpfungen an, welche sonst ausgelassen werden +++ `-r` der Befehl wird auch auf Unterverzeichnisse angewandt +++ `-d` löscht tote Verknüpfungen +++ `-c` absolute Verknüpfungen werden in relative umgewandelt, unsauber erstellte werden korrigiert und (falls `-s` zusätzlich aktiviert ist) überlange ebenso +++ `-t` listet die Änderungen auf, die mit `-c` gemacht werden, ohne jedoch wirklich etwas zu ändern }}} {{{#!vorlage Warnung Vorsichtig mit den Optionen `-d` und `-c` umgehen! Während `-c` in Verbindung mit `-t` (Testlauf) aufgehoben wird, löscht `-d` immer tote Verknüpfungen. Wenn im Aufruf Verzeichnisse als Optionen angegeben werden, die selbst symbolische Verknüpfungen sind, kommt es zu Problemen (siehe [github:brandt/symlinks/issues/3:Issue #3] {en})! }}} {{{#!vorlage Hinweis Beim Überschreiten von Dateisystemgrenzen ist besondere Sorgfalt geboten, da dies nur teilweise funktioniert. }}} In der Ausgabe wird für jede Verknüpfung die Klassifizierung, der absolute Ort und auch das verknüpfte Ziel angegeben. Die Klassifizierung wird folgendermaßen eingeteilt: {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" rowclass="titel"> symlinks-Klassifizierungen +++ Klassifizierungen Bedeutung +++ `relative` Verknüpfung, dessen Ziel relativ zu ihrem eigenen Ort angegeben ist +++ `absolute` Verknüpfung, dessen Ziel absolut (startend mit `/`) angegeben ist +++ `dangling` tote Verknüpfung, dessen Ziel (momentan) nicht erreichbar ist +++ `messy` unsauber erstellte Verknüpfung, die unnötige `/` oder `.` in ihrem Pfad enthält +++ `lengthy` überlange Verknüpfung, die `../` (Sprung in das übergeordnete Verzeichnis) öfter als notwendig enthält +++ `other_fs` Verknüpfung, dessen Ziel außerhalb des Dateisystems, in dem symlinks ausgeführt wird, liegt +++ `changed` nach einer Änderung durch die Option `-c` wird die neue Verknüpfung mit der Klassifizierung `changed` angezeigt +++ `deleted` nach dem Löschen durch die Option `-d` wird die gelöschte Verknüpfung mit der Klassifizierung `deleted` angezeigt }}} = Beispiele = * Alle Verknüpfungen in einem Verzeichnis, unabhängig von deren Art und Funktion, lassen sich mit folgendem Befehl finden: {{{#!vorlage Befehl symlinks -vs /PFAD/ZUM/VERZEICHNIS }}} * Alle funktionierenden Verknüpfungen in einem Verzeichnis, werden mit folgendem Befehl in relative umgewandelt und korrigiert, falls sie unnötige `../`, `/` oder `.` enthalten: {{{#!vorlage Befehl symlinks -vs -c /PFAD/ZUM/VERZEICHNIS }}} * Alle toten Verknüpfungen in einem Verzeichnis, unabhängig von deren Art, lassen sich mit folgendem Befehl löschen: {{{#!vorlage Befehl symlinks -v -d /PFAD/ZUM/VERZEICHNIS }}} = Links = * [github:brandt/symlinks:symbolic link maintenance utility] {en} - Projektseite auf Github * [man:symlinks:Manpage] {en} - vollständige Beschreibung des Werkzeugs * [:Shell/Befehlsübersicht:] {Übersicht} Übersicht über verschiedene Shell-Befehle # tag: System, Shell