Как создать 100 подкаталогов с помощью скрипта Bash?

14

Я пытаюсь создать 100 различных подкаталогов в определенных каталогах, используя скрипт Bash.

Я начинаю с основного forцикла (то есть for f in $FILES;do mkdir f done), но он не работает.

Чтобы было ясно, что я хочу сделать: я пытаюсь получить 100 различных подкаталогов в текущих каталогах (здесь я использую home='pwd'). Например, в каталоге /home/paul/main_directory/.

И здесь я хотел бы создать 100 каталогов с индексом от 1 до 100, например:

subdirectory_1
subdirectory_2
subdirectory_3
subdirectory_4
.
.
.
subdirectory_100
Павол Намер
источник

Ответы:

19

Чтобы ответить на ваш вопрос, используя предложенный forцикл - выражение скобки, упомянутое Steeldriver, также работает:

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

Чтобы ответить на ваш обновленный вопрос:

И то, и другое - ответ от Steeldriver и ответ от меня, как предполагается, должны быть однострочными.

Если вы хотите использовать это в скрипте Bash, вы, вероятно, напишите его так:

#!/bin/bash
for i in {1..100}
do
    mkdir subdirectory_$i
done
РКН
источник
извините, я не хочу редактировать ваш ответ, я просто хочу прокомментировать его ... ой ...
Pavol Namer
Большое спасибо за ваш быстрый ответ, теперь я получил. Спасибо вам много раз, это спасло меня много времени :)
Pavol Namer
1
альтернатива для случаев, когда у вас нет полного BASH, а только / bin / sh, вы можете использовать seqвместо этого: for i in $(seq 1 100); do mkdir dir_$i; done
Daniel Llewellyn
Создает каталог '{1..3}' при попытке сделать то же самое 3 раза. Какие-нибудь подсказки, что могло пойти не так?
soufrk
40

Самый простой способ, вероятно, использовать расширение скобки

mkdir subdirectory_{1..100}
steeldriver
источник
8

Чтобы добавить кое-что к действительно впечатляющему ответу Steeldriver:

Вы можете создавать каталоги, которые сортируются «правильно», добавляя ноль.

mkdir subdirectory_{001..100}

(Если вам нравится этот ответ, пожалуйста, ответьте на вопрос стального водителя. Я пока не могу комментировать или сделал бы это.)

MDeBusk
источник
Создает подкаталог с именем «subdirectory_ {001..100}». Любые подсказки относительно того, что могло пойти не так.
soufrk
Без понятия. Здесь у меня все отлично работает. Вы используете Bash?
MDeBusk