すべてのサブディレクトリにディレクトリを作成するには?

すべてのサブディレクトリにディレクトリを作成するには?

次のディレクトリ構造があるとします。

$[~/練習]ls
ABCD/

tmp1今、すべてのサブディレクトリにディレクトリを作成したいと思いますpractice。次の操作を行います。

$[~/練習] mkdir */tmp1
mkdir: `* / tmp1 'ディレクトリを作成できません:そのファイルまたはディレクトリがありません

その後、切り替えを試み、サブディレクトリの名前を付けたディレクトリ-pで終わりました。*tmp1

$[~/練習] mkdir -p */tmp1

$[~/練習]ls
*/ABCD/

私はスイッチの目的が-p存在しない複数のディレクトリを作成することを知っています。私はこれが役に立つと思いました。

tmp1同時に、すべてのサブディレクトリを作成する方法は?

これが可能であれば、どのように拡張してすぐに、、\tmp1in 、\tmp2およびを生成できますか?\tmp3\a\b\c

編集する:ディレクトリが、等のように単純で秩序整然とする必要はなく、a作成されるディレクトリが、などのようなものである必要はないという点は言及しませんでした。bctmp1tmp2

$[~/練習]ls
犬/猫/ラット/

その中で私は次のようなものが欲しい

$[~/練習]ls*
犬:
赤、青/

猫:
赤、青/

マウス:
赤、青/

ベストアンサー1

そして:

for dir in */; do mkdir -- "$dir/tmp1"; done

ノート

  • */私はディレクトリ(ディレクトリへのシンボリックリンクを含む)を処理するために小さなトリックをglobとして使用します。
  • 一度に複数のサブディレクトリを作成するには、次の手順を実行します。

    for dir in */; do mkdir -- "$dir"/{tmp1,foo,bar,qux}; done

おすすめ記事