Bash: find broken symlinks in file system


Befehl:

find /path/to/folder -type l | (while read broken; do test -e "$broken" || ls -ld "$broken"; done)

Uebersetzung:
Suche mir alle Dateien vom Typ „Link“ im Verzeichnis /path/to/folder inkl. allen Unterverzeichnissen und gib mir den kompletten Pfad zu den Links aus. Die Ausgabe wird in eine WHILE-Schleife gepipt die diese zeilenweise einliest. Fuer jede Zeile wird einmal getestet ob die Datei existiert. Wenn die Datei existiert isses dufte, wenn nicht gib den defekten Link aus.


Eine Antwort zu “Bash: find broken symlinks in file system”

  1. Schöner einzeiler.

    kurze Anmerkung, wenn ich mich nicht Irre starten die Klammern wohl eine Sub-Shell, womit verhindert wird dass auf das Ende des find Befehls gewartet wird (welcher ja durchaus etwas Zeit in Anspruch nehmen kann wenn komplettes / durchgeforstet wird) bevor mit der Abarbeitung der Schleife begonnen wird.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.