J'ai besoin de créer des dossiers de 00 à 99 (00, 01, 02, 03, etc ....) dans plusieurs centaines d'endroits. Y a-t-il une commande sur une seule ligne qui me permettra de faire cela?
17
La réponse de mulaz est correcte, mais beaucoup de gens disent que seq
c'est mal parce que la plupart des obus vous permettront de faire ce qui suit
mkdir {00..99}
Cependant, dans certaines anciennes versions de bash, ne sont 0-9
pas rembourrées, vous devrez donc faire
mkdir 0{0..9} {10..99}
Ça fera l'affraire?
fait une boucle pour les nombres 0-99, et "-w" définit la largeur égale (0 remplissage pour 0-9)
la source
seq -w 0 99 | xargs mkdir
ferait aussi le travail.mkdir $(seq -w 0 99)
. Ou utilisez des backticks à la place de$()
, mais je ne peux pas mettre de backticks à cause de la syntaxe du serveur.mkdir `seq -w 0 99`
(Je n'ai pas pu éviter l'espace supplémentaire). Voir ici , mais il semble que l'astuce d'inclure des espaces dans les délimiteurs ne fonctionne pas ici.Je sais que c'est vieux, mais ma recommandation serait:
pour i in
seq -f %02g 0 99
; faire mkdir $ i; terminéle -f% 02g garantit qu'il reste au moins deux caractères, tels que 00 ou 99, et autorise toujours 3 numéros de caractères au-delà de 99, donc si vous en avez 100, il ne deviendra pas 001. Ce sera 00-99 100 au lieu de 001- 100 comme le fait -w.
la source