回答:
確かに、アーティストフォルダーがある音楽フォルダーでこれを実行します。
for artist in */; do
for folder in "1. Albums" "2. EP" "3. Singles" "4. Live"; do
mkdir "$artist/$folder"
done
done
これをCLIで実行するか#!/bin/sh
、最初の行として追加してファイルに保存することでシェルスクリプトにすることができます。ファイルを実行可能にすることを忘れないでください。
動作について*/
は、現在のディレクトリ内のすべてのディレクトリ()を反復処理し、次にこれらの各ディレクトリについて、目的のサブフォルダ(2番目for
)を反復処理してから、目的の(相対)サブフォルダを作成します。
この中括弧{curly}をつけたいかもしれません
この議論のために、。/ 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
。