Подстановка имени файла для команды mkdir в bash

Форум предназначен для новичков. В нем предполагается рассматривать вопросы, которые встают на первых этапах освоения Linux
nix_user
Интересующийся
Сообщения: 70
Зарегистрирован: 15 фев 2008, 16:59

Подстановка имени файла для команды mkdir в bash

Сообщение nix_user »

Возникла задача создать множество каталогов во время ее решения возник интересный момент.

Создаем каталоги вида user001, user002 ...
mkdir user00{0,1,2,3,4,5,6,7,8,9}
Создаем поткаталоги user001/test, user002/test ...
mkdir user00{0,1,2,3,4,5,6,7,8,9}/test

Пробуем создать подкаталоги user001/test2, user002/test2 ...
другой командой
$ mkdir user00?/test2
mkdir: невозможно создать каталог «user00?/test2»: Нет такого файла или каталога

По идее это должно быть работать. Интересно услышать мнение опытных пользователей это ошибка в оболочке или что-то еще?

Да еще дополнение
команда ls работает с подобной конструкцией отлично. Правда файлы уже существуют.
$ ls user00?/test
user000/test:
user001/test:

nix_user
Интересующийся
Сообщения: 70
Зарегистрирован: 15 фев 2008, 16:59

Re: Подстановка имени файла для команды mkdir в bash

Сообщение nix_user »

Прочитав man bash внимательно все стало на свои места.

В случае с {} Brace Expansion
This mechanism is similar to pathname expansion, but the filenames generated need not exist.

Для Pathname Expansion файлы должны существовать.

Так что всё работает правильно. Это два разных механизмы.

Ответить