Как сделать папки 00-99 одной командой в Ubuntu?

17

Мне нужно создать папки, начиная с 00 до 99 (00, 01, 02, 03 и т. Д.) В нескольких сотнях мест. Есть ли однострочная команда, которая позволит мне сделать это?

jjeaton
источник

Ответы:

46

Ответ Мулаза правильный, но многие говорят, что seqэто зло, потому что большинство снарядов позволят вам сделать следующее

mkdir {00..99}

Однако в некоторых старых версиях bash нет 0-9дополнения, поэтому вам придется

mkdir 0{0..9} {10..99}
Патрик
источник
9
+1 Должен быть принят ответ ИМХО. Мало того, что это идиоматический Bash, он не требует использования внешней программы (что является следствием).
Троллхорн
1
Вот как это должно быть сделано.
Phoxis
7
Также работает следующее:> mkdir {0..9} {0..9}
Orieg
17

Будет ли это делать?

for i in `seq -w 0 99`; do mkdir $i; done

делает цикл для чисел 0-99, а "-w" устанавливает равную ширину (заполнение 0 для 0-9)

mulaz
источник
7
seq -w 0 99 | xargs mkdirтакже сделал бы работу.
Джей
11
Вы можете угробить петлю и просто сделать mkdir $(seq -w 0 99). Или вместо них использовать обратные кавычки $(), но я не могу добавить кавычки из-за синтаксиса сервера.
Патрик
@ Патрик: Да, вы можете: mkdir `seq -w 0 99` (Я не мог избежать дополнительного места). Смотрите здесь , но похоже, что хитрость включения пробелов в разделители здесь не работает.
Кит Томпсон
2
@ Патрик плохие отзывы
Эндрю
@ Андрей, да, я знаю об этом, но я предпочитаю придерживаться стиля кодирования того, на что я отвечаю.
Патрик
2

Я знаю, что это старый, но моя рекомендация будет:

ибо я в seq -f %02g 0 99; do mkdir $ i; сделано

-f% 02g гарантирует, что он останется как минимум двумя символами, такими как 00 или 99, и будет по-прежнему разрешать 3 символа после 99, поэтому если у вас есть 100, он не станет 001. Это будет 00-99 100 вместо 001- 100 таких как -w делает.

Нейт У
источник