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.

prego

/me... prego!

One thought to “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. Erforderliche Felder sind mit * markiert.