Le Tue, Oct 23, 2007 at 06:19:41PM +0200, Bruno Bonfils a écrit:
# mailq | grep MAILER-DAE | cut -c1-11 | xargs postsuper -d postsuper: fatal: invalid directory name: 3089A2A9AEB # mailq | grep MAILER-DAE | cut -c1-11 | for i in read - ; do postsuper -d $i; done [snip] postsuper: D34B62AA563: removed postsuper: Deleted: 15 messages Que la documentation de postsuper dis qu'il n'accepte qu'un seul argument à l'option -d, et que l'argument suivant est .. un répertoire postsuper [-psv] [-c config_dir] [-d queue_id] [-h queue_id] [-H queue_id] [-r queue_id] [directory ...]
Heu, tu sais pas lire ;) Il accepte un numéro de queue.
Je pense que le mieux est d'essayer de passer par stdout, il est possible que % mailq | grep MAILER-DAE | cut -c1-11 | postsuper -d - fonctionne
Non, ça, ça fonctionnerait si on pouvait avoir postsuper -d Q1 -d Q2 -d Q3, etc. xargs est censé faire arg1 arg2 arg3 -> xargs postsuper -d : postsuper -d arg1 postsuper -d arg2 postsuper -d arg3 Or, ce n'est à priori pas ce qui se passe... This manual page documents the GNU version of xargs. xargs reads items from the standard input, delimited by blanks (which can be protected with double or single quotes or a backslash) or newlines, and executes the command (default is /bin/echo) one or more times with any initial-arguments followed by items read from standard input. Blank lines on the standard input are ignored. Non non, ça m'échappe définitivement. Arnaud. -- Perso: http://launay.org/blog/ Hébergement: http://www.nocworld.com/