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


17

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

Ответы:


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)


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 делает.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.