Ответы:
Конечно, выполните это в папке музыки, где папки исполнителя:
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
), а затем создает нужную (относительную) подпапку.
Вы можете надеть свои фигурные скобки для этого
Ради этого аргумента мы будем притворяться ./music не существует
В вашем базовом каталоге для ./music мы будем использовать команду -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/
music
, поэтому правильный аргумент , чтобы mkdir
бы./music/*/{"1. Albums","2. EP","3. Singles","4. Live"}
-p
это краткая форма --parent
.