Thema: xargs
-
Exit-Codes von find und xargs: das grobe 0/>0 von find gegenüber der Skala 123–127 von xargs
find garantiert nur 0 bei vollständigem Erfolg und einen Wert grösser als 0 bei einem Fehler, bewusst ohne feinere Abstufung. xargs definiert dagegen eine genaue Skala dafür, wie der aufgerufene Befehl gescheitert ist: 123 für einen gewöhnlichen Exit-Status ungleich 0, 124 für Exit-Status 255, 125 für Abbruch durch ein Signal, 126 für nicht ausführbar und 127 für nicht gefunden. Wer find an xargs weiterleitet, muss in einer einzigen Pipeline zwei unterschiedliche Exit-Code-Konzepte prüfen.
-
„Argument list too long“ (E2BIG) und das ARG_MAX-Limit
Expandiert ein Shell-Befehl zu zu vielen Argumenten, scheitert er mit „Argument list too long“, dem Fehler E2BIG von execve(2) beim Erreichen der Kernel-Obergrenze ARG_MAX. Der Artikel zeigt, wie sich das Limit messen lässt und wie sich ein fehlschlagendes Glob durch xargs oder das Batching von find mit -exec ... + ersetzen lässt, statt mit Quoting dagegen anzukämpfen.
Maschinenlesbar: JSON