共通の祖先から複数のサブディレクトリを選択的に削除するために、次のコードスニペットを作成しました。動作しませんが、理由がわかりません。
for x in *;
do rm -r "$x/foo/bar/{a*,b,c,d,g*}";
done
実行するとフォルダがあることがわかっていますが、「該当するファイルやディレクトリがありません」というエラーが発生します。
答え1
二重引用符内の括弧は拡張されません。この試み:
for x in *;
do rm -r "$x/foo/bar/"{a*,b,c,d,g*};
done