Je voudrais créer de nombreux répertoires en utilisant mkdir
. Chaque nom de répertoire sera composé d'un préfixe (une chaîne) et d'un index (un entier). Supposons que je souhaite que le préfixe soit "s" et que les indices soient compris entre 1 et 50. Cela signifie que je souhaite créer des répertoires intitulés :
s1
, s2
, … , s49
, s50
Existe-t-il un moyen de le faire automatiquement en utilisant mkdir
? Merci pour votre temps.
Réponse acceptée :
Vous pouvez le faire avec un script shell.
Pure sh - cela fonctionnera même sur les shells bourne pré-POSIX :
n=1;
max=50;
while [ "$n" -le "$max" ]; do
mkdir "s$n"
n=`expr "$n" + 1`;
done
Si vous souhaitez créer un grand nombre de répertoires, vous pouvez rendre le script plus rapide en le réduisant à un seul appel de mkdir
ainsi que l'utilisation des commandes intégrées du shell pour les tests et l'arithmétique. Comme ceci :
n=1
max=50
set -- # this sets [email protected] [the argv array] to an empty list.
while [ "$n" -le "$max" ]; do
set -- "[email protected]" "s$n" # this adds s$n to the end of [email protected]
n=$(( $n + 1 ));
done
mkdir "[email protected]"
Zsh, ksh93 ou bash rendent cela beaucoup plus facile, mais je dois souligner que cela n'est pas intégré à mkdir
et peut ne pas fonctionner dans d'autres shells. Pour les cas plus importants, cela peut également être affecté par les limites du nombre ou de la taille totale des arguments pouvant être transmis à une commande.
mkdir s{1..50}