Як зробити папки 00-99 однією командою в Ubuntu?


17

Мені потрібно створити папки починаючи з 00 до 99 (00, 01, 02, 03 тощо) .... в декількох сотнях місць. Чи є одна командна лінія, яка дозволить мені це зробити?

Відповіді:


46

Відповідь муласа правильна, але багато людей кажуть, що seqце зло, бо більшість снарядів дозволять вам зробити наступне

mkdir {00..99}

Однак у деяких старих версіях bash, 0-9arent padded, так що вам доведеться робити

mkdir 0{0..9} {10..99}

9
+1 Має бути прийнятою відповіддю IMHO. Це не тільки ідіоматичний Bash, він не потребує використання зовнішньої програми (що таке seq).
Trollhorn

1
Ось як це слід робити.
фоксис

7
Наступні роботи також:> mkdir {0..9} {0..9}
Оріг,

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). Або використовувати зворотні посилання замість $(), але я не можу вставляти задні посилання через синтаксис сервера за замовчуванням.
Патрік

@Patrick: Так, ви можете: mkdir `seq -w 0 99` (Я не міг уникнути зайвого місця). Дивіться тут , але, схоже, хитрість включення пробілів у роздільники не працює тут.
Кіт Томпсон

2
Повернення @Patrick погані: mywiki.wooledge.org/BashFAQ/082
Ендрю

@Andrew так, я знаю про це, але я вважаю за краще дотримуватися стилю кодування того, на що я відповідаю.
Патрік

2

Я знаю, що це старе, але моя рекомендація буде:

за я в seq -f %02g 0 99; робити 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.