J'ai quelque chose comme ça:
% ls -1dF /tmp/foo/*
/tmp/foo/000f9e956feab3ee4625aebb65ae7bae9533cdbc/
/tmp/foo/002e34c2218f2c86fefd2876f0e5c2559c5fb3c4/
/tmp/foo/00b483576791bab751e6cb7ee0a7143af43a8069/
.
.
.
/tmp/foo/fedd0f7b545e7ae9600142656756456bc16874d3/
/tmp/foo/ff51ac87609012137cfcb02f36624f81cdc10788/
/tmp/foo/ff8b983a7411395344cad64182cb17e7cdefa55e/
Je veux créer un répertoire bar
sous chacun des sous-répertoires sous foo
.
Si j'essaye de faire ça avec
% mkdir -p /tmp/foo/*/bar
... je reçois l'erreur
zsh: no matches found: /tmp/foo/*/bar
(Avec le recul, je peux comprendre la raison de l'erreur.)
Je sais que je peux résoudre le problème d'origine avec une boucle for, mais je suis curieux de savoir s'il zsh
prend en charge une certaine forme d'expansion de paramètres qui produirait l'argument souhaité pour une seule invocation de mkdir -p
. IOW, une extension de paramètre équivalente à "ajouter /bar
à chaque préfixe généré par l'expansion /tmp/foo/*
", résultant en
% mkdir -p /tmp/foo/000f9e956feab3ee4625aebb65ae7bae9533cdbc/bar ... /tmp/foo/ff8b983a7411395344cad64182cb17e7cdefa55e/bar