Sujet : xargs
-
Codes de sortie de find et xargs : le 0/>0 grossier de find face à l'échelle 123-127 de xargs
find ne garantit que 0 en cas de succès complet et une valeur supérieure à 0 en cas d'erreur, volontairement sans plus de détail, alors que xargs définit une échelle précise pour l'échec de la commande lancée : 123 pour une sortie non nulle ordinaire, 124 pour la sortie 255, 125 pour une commande tuée par un signal, 126 pour une commande non exécutable et 127 pour une commande introuvable. Chaîner find et xargs oblige à vérifier deux logiques différentes de codes de sortie dans un même pipeline.
-
« Argument list too long » (E2BIG) et la limite ARG_MAX
Une commande shell dont l'expansion produit trop d'arguments échoue avec « Argument list too long », l'erreur E2BIG renvoyée par execve(2) lorsque la limite ARG_MAX du noyau est dépassée. L'article montre comment mesurer cette limite et remplacer un glob défaillant par xargs ou par le regroupement de find avec -exec ... +, plutôt que de jouer sur le quoting.
Lisible par machine : JSON