Odpowiedzi:
Jasne, wykonaj to w folderze muzyki, w którym znajdują się foldery wykonawców:
for artist in */; do
for folder in "1. Albums" "2. EP" "3. Singles" "4. Live"; do
mkdir "$artist/$folder"
done
done
Możesz to zrobić w interfejsie CLI lub uczynić z niego skrypt powłoki, dodając #!/bin/sh
jako pierwszy wiersz i zapisując go w pliku. Nie zapomnij, aby plik był wykonywalny.
Co do tego, co robi: iteruje wszystkie katalogi ( */
) w bieżącym katalogu, a następnie dla każdego z tych katalogów, iteruje żądany podfolder (drugi for
), a następnie tworzy pożądany (względny) podfolder.
Możesz założyć {nawiasy klamrowe} do tego
Ze względu na ten argument będziemy udawać, że ./music nie istnieje
W twoim katalogu podstawowym dla ./music użyjemy polecenia -p, aby w razie potrzeby utworzyć podkatalogi, a nawiasy klamrowe zostaną użyte do utworzenia małej tablicy
Komenda -p
jest skrótem od rodzica, jeśli łatwiej jest zapamiętać, możesz użyć --parent
zamiast tego
mkdir -p ./music/{"1. Albums","2. EP","3. Singles","4. Live"}
Jeśli chcesz się tym bawić, możesz na przykład
mkdir -p ./folder/prefix{a{1/only,2,3},b,c}suffix/more{z,y,x}
Masz zagnieżdżone wyrażenia, możesz wstawiać nawiasy klamrowe na środku ciągu, a także możesz pozwolić, aby podkatalog podążał za tym przykładem, a także możesz być specyficzny dla swoich podkatalogów dla określonej tablicy
Sugeruję utworzenie pliku gdzieś, w którym można tworzyć własne szablony za pomocą takich poleceń i podawać im opisy
Odwiedź tę stronę, aby uzyskać więcej informacji https://www.linuxjournal.com/content/bash-brace-expansion i https://www.linux.com/tutorials/all-about-curly-braces-bash/
music
, więc poprawnym argumentem mkdir
byłoby./music/*/{"1. Albums","2. EP","3. Singles","4. Live"}
-p
to krótka forma --parent
.