Как создать каталоги с индексными номерами?

Как создать каталоги с индексными номерами?

Я хочу создать каталоги hal-01в hal-30Linux. Есть ли одна команда, которая может это сделать?

решение1

Вы можете использовать следующую команду: mkdir hal-{01..30}(по крайней мере, если вы используете оболочку, которая поддерживает эту форму расширения строк (bash поддерживает)).

Объясним, что он делает:

$ echo {01..30}
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Как вы можете видеть, {01..30}got был расширен до ряда аргументов. Это работает, если ваши фигурные скобки встречаются внутри строки:

$ echo hal-{01..30}
hal-01 hal-02 hal-03 hal-04 hal-05 hal-06 hal-07 hal-08 hal-09 hal-10 hal-11 hal-12 hal-13 hal-14 hal-15 hal-16 hal-17 hal-18 hal-19 hal-20 hal-21 hal-22 hal-23 hal-24 hal-25 hal-26 hal-27 hal-28 hal-29 hal-30

Теперь mkdir принимает несколько аргументов и создаст каталог для каждого из них. Таким образом, вы получите то, что просили, если используете mkdirвместо echo.

решение2

Используйте раскрытие фигурных скобок, например, так: mkdir hal-{01..30}

решение3

mkdir ~/example/folder{1..30} если вы хотите 30

решение4

Для этого вы также можете использовать seq(1), например:

mkdir $(seq --format="~/example/folder/HAL-%02.0f" 1 30)

Может делать другие вещи, например, разные шаги и т. д. По какой-то непостижимой причине он вычисляет с плавающей точкой (!?), printf(3)формат -like должен быть скорректирован соответствующим образом. Это работает даже с простыми оболочками, которые не делают фанковых расширений.

Связанный контент