Как я могу создавать папки в папках в терминале

У меня есть папка с именем music, внутри которой находятся все папки исполнителей. Есть ли способ создать эти папки: 1. Albums, 2. EP, 3. Singles, 4. Live во всех папках исполнителя с помощью команды?

12
задан 17 September 2019 в 01:38

2 ответа

Несомненно, выполните это в музыкальной папке, где папки художника:

for artist in */; do
   for folder in "1. Albums" "2. EP" "3. Singles" "4. Live"; do
      mkdir "$artist/$folder"
   done
done

Можно выполнить это на CLI, или можно сделать его сценарием оболочки путем добавления #!/bin/sh как первая строка и сохранение его в файле. Не забывайте делать исполняемый файл файла.

Что касается того, что это делает: это выполняет итерации по всем каталогам (*/) в текущем каталоге, затем для каждого из этих каталогов, выполняет итерации по желаемой подпапке (второе for), и затем делает желаемую (относительную) подпапку.

13
ответ дан 23 November 2019 в 03:30

Можно хотеть поставить {изогнутые} фигурные скобки для этого

Ради этого аргумента мы притворимся./музыка, не существует

В Вашем базовом каталоге для./музыка мы будем использовать команду-p для создания подкаталогов при необходимости, и фигурные скобки будут использоваться для создания небольшого массива

Команда -p коротко для родителя, если легче помнить, что можно использовать --parent вместо этого

mkdir -p ./music/{"1. Albums","2. EP","3. Singles","4. Live"}

Если Вы хотите играть вокруг с этим, Вы можете, например

mkdir -p ./folder/prefix{a{1/only,2,3},b,c}suffix/more{z,y,x}

Вы вложили выражения, можно вставить фигурные скобки в к середине строки, и можно также позволить подкаталогу следовать примеру, и можно быть специфичны с подкаталогами для конкретного массива

Я предлагаю, чтобы Вы сделали файл где-нибудь, где можно сделать собственные шаблоны с такими командами и дать им описания

Посетите эту страницу для получения дополнительной информации https://www.linuxjournal.com/content/bash-brace-expansion и https://www.linux.com/tutorials/all-about-curly-braces-bash/

18
ответ дан 23 November 2019 в 03:30

Другие вопросы по тегам:

Похожие вопросы: