Відповіді:
Звичайно, виконайте це в папці музики, де папки виконавців:
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
.