{"id":13488,"date":"2024-01-06T20:19:04","date_gmt":"2024-01-06T19:19:04","guid":{"rendered":"https:\/\/linux-bibel.at\/?p=13488"},"modified":"2024-01-08T15:38:55","modified_gmt":"2024-01-08T14:38:55","slug":"verwaiste-symlinks-aufspueren","status":"publish","type":"post","link":"https:\/\/linux-bibel.at\/index.php\/2024\/01\/06\/verwaiste-symlinks-aufspueren\/","title":{"rendered":"Verwaiste Symlinks aufsp\u00fcren"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Symlinks bieten die M\u00f6glichkeit, Ordner von verschiedenen Datentr\u00e4gern unter einem Verzeichnis z. B. <strong><em>home<\/em><\/strong>, gemeinsam verf\u00fcgbar zu machen.<br>Wird die Quelle verschoben oder umbenannt, verweist der Symlink ins Leere.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zumeist sind verwaiste Symlinks relativ selten und treten auf einem frisch installierten Linux-System nicht auf.<br>Nach Ver\u00e4nderungen auf Dateiservern mit mehreren Partitionen &#8211; die in Symlinks zusammengefasst sind &#8211; kann es aber immer wieder defekte Symlinks geben.<br>Diese lassen sich zum einem mit dem Bordmittel <strong><em>find<\/em><\/strong>, alternativ mit Hilfswerkzeugen aus den Standard-Paketquellen der jeweils verwendeten Linux-Distribution aufsp\u00fcren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Befehl <strong><em>find<\/em><\/strong> listet mit<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong>find . -type l -exec test ! -e {} \\; -print<\/strong><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">alle defekten Symlinks &#8211; ausgehend vom aktuellen Verzeichnis &#8211; auf&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Terminal-Ausgabe:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/01\/terminal-1.jpg\" rel=\"lightbox-0\"><img loading=\"lazy\" decoding=\"async\" width=\"776\" height=\"209\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/01\/terminal-1.jpg\" alt=\"\" class=\"wp-image-13493\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/01\/terminal-1.jpg 776w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/01\/terminal-1-150x40.jpg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/01\/terminal-1-300x81.jpg 300w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/01\/terminal-1-768x207.jpg 768w\" sizes=\"auto, (max-width: 776px) 100vw, 776px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Einen einfacheren Weg bietet das spezialisierte Tool <strong><em>symlinks<\/em><\/strong>.<br>Installieren l\u00e4sst sich dieses unter Debian, Ubuntu und Derivate mit dem Befehl:<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong>sudo apt install symlinks<\/strong><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Entgegen der vorherigen Variante erfordert diese Vorgehensweise keine \u00fcberlange kryptische  Befehlszeilen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der folgende Befehl:<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong>symlinks . -r <\/strong><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; ausgehend vom aktuellen Verzeichnis &#8211; kontrolliert dann alle Symlinks die verwaist sind und evtl. einer \u00dcberpr\u00fcfung bed\u00fcrfen, ob es die Zielordner oder Dateien noch gibt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Anmerkung:<\/strong><br>Der Punkt (.) in dem Linux-Befehl &#8222;symlinks . -r&#8220; hat die Bedeutung, dass symbolische Links &#8211; in diesem Fall &#8211; relativ zum aktuellen Verzeichnis erstellt werden sollen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das System-Tool <strong><em>symlinks<\/em><\/strong> \u00fcberpr\u00fcft die Dateisystem-Verkn\u00fcpfungen im Bezugs &#8211; Ordner auf Fehler und listet verwaiste Links als &#8222;<strong><em>dangling<\/em><\/strong>&#8220; auf.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Wissenswertes zur Bedienung <\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Symlinks Befehls-Optionen<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td><strong>Verf\u00fcgbare Optionen<\/strong><\/td><td><strong>Bedeutung<\/strong><\/td><\/tr><tr><td>-v<\/td><td>zeigt auch relative Verkn\u00fcpfungen an, welche sonst ausgelassen werden<\/td><\/tr><tr><td>-s<\/td><td>zeigt auch \u00fcberlange Verkn\u00fcpfungen an, welche sonst ausgelassen werden<\/td><\/tr><tr><td>-r<\/td><td>der Befehl wird auch auf Unterverzeichnisse angewandt<\/td><\/tr><tr><td>-d<\/td><td>l\u00f6scht tote Verkn\u00fcpfungen<\/td><\/tr><tr><td>-c<\/td><td>absolute Verkn\u00fcpfungen werden in relative umgewandelt, unsauber erstellte werden korrigiert und (falls -s zus\u00e4tzlich aktiviert ist) \u00fcberlange ebenso<\/td><\/tr><tr><td>-t<\/td><td>listet die \u00c4nderungen auf, die mit -c gemacht werden, ohne jedoch wirklich etwas zu \u00e4ndern<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Symlinks Klassifizierungen<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td><strong>Klassifizierungen<\/strong><\/td><td><strong>Bedeutung<\/strong><\/td><\/tr><tr><td>relative<\/td><td>Verkn\u00fcpfung, dessen Ziel relativ zu ihrem eigenen Ort angegeben ist<\/td><\/tr><tr><td>absolute<\/td><td>Verkn\u00fcpfung, dessen Ziel absolut (startend mit \/) angegeben ist<\/td><\/tr><tr><td>dangling<\/td><td>tote Verkn\u00fcpfung, dessen Ziel (momentan) nicht erreichbar ist<\/td><\/tr><tr><td>messy<\/td><td>unsauber erstellte Verkn\u00fcpfung, die unn\u00f6tige \/ oder . in ihrem Pfad enth\u00e4lt<\/td><\/tr><tr><td>lengthy<\/td><td>\u00fcberlange Verkn\u00fcpfung, die ..\/ (Sprung in das \u00fcbergeordnete Verzeichnis) \u00f6fter als notwendig enth\u00e4lt<\/td><\/tr><tr><td> other_fs <\/td><td>Verkn\u00fcpfung, dessen Ziel au\u00dferhalb des Dateisystems, in dem symlinks ausgef\u00fchrt wird, liegt<\/td><\/tr><tr><td>changed<\/td><td>nach einer \u00c4nderung durch die Option -c wird die neue Verkn\u00fcpfung mit der Klassifizierung changed angezeigt<\/td><\/tr><tr><td>deleted<\/td><td>nach dem L\u00f6schen durch die Option -d wird die gel\u00f6schte Verkn\u00fcpfung mit der Klassifizierung deleted angezeigt<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Unterschied zwischen relativen und absoluten Pfaden bez\u00fcglich Symlinks<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Pfad ist eine Angabe des Speicherorts einer Datei oder eines Ordners in einem Dateisystem. Es gibt zwei Arten von Pfaden: Relative Pfade und absolute Pfade. Der Unterschied liegt darin, wie der Speicherort angegeben wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Relativer Pfad:<\/strong><br>Ein relativer Pfad gibt den Speicherort einer Datei oder eines Ordners relativ zum aktuellen Arbeitsverzeichnis an. Das bedeutet, dass der Pfad in Bezug auf den aktuellen Speicherort angegeben wird. Ein relativer Pfad kann verwendet werden, um auf Dateien oder Ordner innerhalb des gleichen Verzeichnisses oder in Unterordnern zu verweisen. Wenn sich der aktuelle Arbeitsverzeichnis \u00e4ndert, \u00e4ndert sich auch der relative Pfad entsprechend. Ein relativer Pfad beginnt normalerweise nicht mit einem Schr\u00e4gstrich (\/).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Absoluter Pfad:<\/strong><br>Ein absoluter Pfad gibt den vollst\u00e4ndigen Speicherort einer Datei oder eines Ordners im Dateisystem an. Er enth\u00e4lt den gesamten Pfad vom Stammverzeichnis bis zur Datei oder zum Ordner. Ein absoluter Pfad beginnt normalerweise mit einem Schr\u00e4gstrich (\/). <br>Ein absoluter Pfad bleibt unver\u00e4ndert, unabh\u00e4ngig vom aktuellen Arbeitsverzeichnis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bez\u00fcglich Symlinks gibt es keinen spezifischen Unterschied zwischen relativen und absoluten Pfaden.    Hierbei handelt es sich um eine Art von Dateiverkn\u00fcpfung, die auf eine andere Datei oder einen anderen Ordner verweist. Sowohl relative als auch absolute Pfade k\u00f6nnen verwendet werden, um auf die Datei oder den Ordner zu verweisen, auf den der Symlink zeigt.<\/p>\n<div class=\"pld-like-dislike-wrap pld-custom\">\r\n    <div class=\"pld-like-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir\" data-post-id=\"13488\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Hoch.png\" alt=\"Gef\u00e4llt mir\" \/>\r\n            <\/a>\r\n    <span class=\"pld-like-count-wrap pld-count-wrap\">7    <\/span>\r\n<\/div><div class=\"pld-dislike-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-dislike-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir nicht\" data-post-id=\"13488\" data-trigger-type=\"dislike\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Runter.png\" alt=\"Gef\u00e4llt mir nicht\" \/>\r\n            <\/a>\r\n    <span class=\"pld-dislike-count-wrap pld-count-wrap\"><\/span>\r\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Symlinks bieten die M\u00f6glichkeit, Ordner von verschiedenen Datentr\u00e4gern unter einem Verzeichnis z. B. home, gemeinsam verf\u00fcgbar zu machen.Wird die Quelle verschoben oder umbenannt, verweist der Symlink ins Leere. Zumeist sind verwaiste Symlinks relativ selten und treten auf einem frisch installierten Linux-System nicht auf.Nach Ver\u00e4nderungen auf Dateiservern mit mehreren Partitionen &#8211; die in Symlinks zusammengefasst sind [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":13491,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[799,798],"class_list":["post-13488","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-system","tag-symlinks","tag-verwaiste-symlinks"],"_links":{"self":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/13488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/comments?post=13488"}],"version-history":[{"count":10,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/13488\/revisions"}],"predecessor-version":[{"id":13535,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/13488\/revisions\/13535"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media\/13491"}],"wp:attachment":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media?parent=13488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/categories?post=13488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/tags?post=13488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}