Как сделать несколько папок в одном месте, используя относительный путь к этому месту? - PullRequest
39 голосов
/ 31 января 2011

Я пытаюсь создать несколько папок в папке " ~ / Labs / lab4a / " ( ~ / Labs / lab4a / уже существует).

Скажите, что я хочу folder1 , folder2 , folder3 все в папке lab4a .

Речь идет не о том, чтобы заставить вложенные папки одновременно работать с помощью команды mkdir -p или перейти к lab4a , а просто создать несколько папок за один раз. Мне интересно, есть ли более быстрый способ использования mkdir для создания нескольких папок в одном месте с использованием относительного пути.

* 1026 т.е. * подсказка ~ /: mkdir Labs / lab4a / folder1 folder2 folder3 folder3 Чтобы создать все эти папки в lab4a одновременно.

Ответы [ 4 ]

59 голосов
/ 31 января 2011

В Bash и других оболочках, которые его поддерживают, вы можете сделать

mkdir ~/Labs/lab4a/folder{1..3}

или

mkdir ~/Labs/lab4a/folder{1,2,3}

Другие варианты:

mkdir $(seq -f "$HOME/Labs/lab4a/folder%03g" 3)

mkdir $(printf "$HOME/Labs/lab4a/folder%03g " {0..3})

Что даст вамведущие нули, которые упрощают сортировку.

Это сделает то же самое в Bash 4:

mkdir ~/Labs/lab4a/folder{001..3}
46 голосов
/ 31 января 2011

Использовать расширение оболочки:

mkdir Labs/lab4a/{folder1,myfolder,foofolder}

Вот такая недооцененная возможность:)

my2c

3 голосов
/ 22 мая 2013

Перейти к консоли -

cd ...

mkdir {8 ... 30}

Создать несколько папок linux

1 голос
/ 06 октября 2017

Я бы использовал mkdir с параметром -p, так как он создает промежуточные каталоги по мере необходимости:

mkdir -p ~/var/www/html/site1/{site2/{html,logs,images},site{3..6},site7}

, это создает вывод , так что в вашем случае

mkdir -p ~/Labs/lab4a/folder{1..3}
...