Массовое создание файлов с помощью bash

Массовое создание файлов с помощью bash

Я пытался разобраться с этим, пробовал разные команды, но так и не добился результата. Можете ли вы помочь мне с этим вопросом?

В вашем домашнем каталоге создайте подкаталог shirts. В подкаталоге создайте 108 файлов с именами в виде style.size.color.ext, где каждый файл содержит одну комбинацию значений из следующей таблицы.

Style   tee, crew, turtleneck
Size    XXL, XL, L, M, S, XS
Color   red, yellow, blue
Extension   info, inv

Это последняя команда, которую я использовал.

$ touch shirts/{tee,crew,turtleneck}.{XXL,XL,L,M,S,XS}.{red,yellow,blue}/{info,inv}

решение1

В вашей команде касания есть небольшая ошибка. Ваша исходная команда,

touch shirts/{tee,crew,turtleneck}.{XXL,XL,L,M,S,XS}.{red,yellow,blue}/{info,inv}

В конце концов есть/который снова пытается создать каталог, и поскольку каталог не существует, вы получите ошибку, как,

touch: cannot touch `/shirts/turtleneck.XS.blue/inv': No such file or directory

Однако, поскольку вам нужны только файлы, вам необходимо изменить исходную команду следующим образом:

touch shirts/{tee,crew,turtleneck}.{XXL,XL,L,M,S,XS}.{red,yellow,blue}.{info,inv}

ПС: Вам нужно убедиться, что каталог shirtsуже существует. В противном случае вы снова получите ту же ошибку cannot touch.

решение2

Согласно вашему описанию, имя каждого из этих 108 файлов должно соответствовать формату style.size.color.ext.

Так и должно быть

mkdir shirts
touch {tee,crew,turtleneck}.{XXL,XL,L,M,S,XS}.{red,yellow,blue}.{info,inv}

То, что touchпроисходит, - это создание пустого файла, но вы пытаетесь создать каталог shirts с различными подкаталогами. touchЭто невозможно.

Редактировать: Вы также можете сделать touchуказанную выше команду короче/лучше:

touch {tee,crew,turtleneck}.{{X,XX,}L,M,{X,}S}.{red,yellow,blue}.{info,inv}

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