Як створити 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

1
альтернативу для випадків, коли у вас немає повного BASH, а лише a / bin / sh, ви можете використовувати seqзамість цього: for i in $(seq 1 100); do mkdir dir_$i; done
Daniel Llewellyn

Створює каталог "{1..3}", коли намагався робити те саме 3 рази. Будь-які підказки, що могло піти не так?
суфрк

40

Найпростіший спосіб - це, мабуть, використання розширення дужок

mkdir subdirectory_{1..100}

8

Щоб додати трохи чогось до справді вражаючої відповіді, яку дає steeldriver:

Ви можете створити каталоги, які сортують "належним чином", доповнивши нуль.

mkdir subdirectory_{001..100}

(Якщо вам подобається ця відповідь, будь ласка, підтвердіть відповідь steeldriver. Я поки не можу коментувати це, або зробив би це.)


Створює підкаталог з назвою "підкаталог_ {001..100}". Будь-які підказки щодо того, що, можливо, пішло не так.
суфрк

Не маю уявлення. Для мене це працює просто чудово. Ви використовуєте bash?
MDeBusk
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.