Comment créer 100 sous-répertoires à l'aide d'un script Bash?


14

J'essaie de créer 100 sous-répertoires différents dans certains répertoires à l'aide d'un script Bash.

Je commence par une forboucle de base (c'est-à-dire for f in $FILES;do mkdir f done), mais cela ne fonctionne pas.

Pour être clair sur ce que je veux faire: j'essaye d'obtenir 100 sous-répertoires différents dans les répertoires actuels (ici j'utilise home='pwd'). Par exemple, dans le répertoire /home/paul/main_directory/.

Et ici, je voudrais créer 100 répertoires avec un index de 1 à 100, comme ceci:

subdirectory_1
subdirectory_2
subdirectory_3
subdirectory_4
.
.
.
subdirectory_100

Réponses:


19

Pour répondre à votre question en utilisant votre forboucle suggérée - l'expression d'accolade mentionnée par Steeldriver fonctionne également:

for i in {1..100}; do mkdir subdirectory_$i; done

Pour répondre à votre question mise à jour:

Les deux - la réponse de Steeldriver et celle de moi sont toutes deux destinées à être des lignes simples.

Si vous souhaitez l'utiliser dans un script Bash, vous l'écrirez probablement comme:

#!/bin/bash
for i in {1..100}
do
    mkdir subdirectory_$i
done

désolé, je ne veux pas modifier votre réponse, je veux juste le commenter ... aïe ...
— Pavol Namer

Merci beaucoup, pour votre réponse très rapide, maintenant je l'ai. Merci beaucoup de fois, cela me sauve beaucoup de temps :)
— Pavol Namer

1
une alternative pour les cas où vous n'avez pas un BASH complet mais juste un / bin / sh, vous pouvez utiliser à la seqplace: for i in $(seq 1 100); do mkdir dir_$i; done
— Daniel Llewellyn

Crée un répertoire '{1..3}', lorsque vous essayez de faire la même chose 3 fois. Des indices sur ce qui aurait pu mal tourner?
— soufrk

40

La façon la plus simple est probablement d'utiliser l' expansion de l'accolade

mkdir subdirectory_{1..100}

8

Pour ajouter un petit quelque chose à la réponse vraiment impressionnante donnée par Steeldriver:

Vous pouvez créer des répertoires qui trient "correctement" en remplissant à zéro.

mkdir subdirectory_{001..100}

(Si vous aimez cette réponse, veuillez voter pour la réponse de Steeldriver. Je ne peux pas encore commenter, ou je l'aurais fait.)


Crée un sous-répertoire nommé 'subdirectory_ {001..100}'. Des indices sur ce qui aurait pu mal tourner.
— soufrk

Aucune idée. Cela fonctionne très bien pour moi ici. Utilisez-vous bash?
— MDeBusk
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.