Bashスクリプトを使用して100個のサブディレクトリを作成する方法は?


14

Bashスクリプトを使用して、特定のディレクトリに100個の異なるサブディレクトリを作成しようとしています。

基本的なforループ(つまりfor f in $FILES;do mkdir f done)から始めますが、機能しません。

やりたいことを明確にするために、現在のディレクトリで100個の異なるサブディレクトリを取得しようとしています(ここではを使用していますhome='pwd')。たとえば、ディレクトリ内/home/paul/main_directory/

そして、ここでは、次のように、1〜100のインデックスを持つ100個のディレクトリを作成します。

subdirectory_1
subdirectory_2
subdirectory_3
subdirectory_4
.
.
.
subdirectory_100

回答:


19

提案されたforループを使用して質問に答えるには、steeldriverで言及されているブレース表現も同様に機能します。

for i in {1..100}; do mkdir subdirectory_$i; done

更新された質問に回答するには:

両方-steeldriverによる答えと私による答えはどちらもワンライナーを意図しています。

これをBashスクリプトで使用したい場合は、おそらく次のように記述します。

#!/bin/bash
for i in {1..100}
do
    mkdir subdirectory_$i
done

私はあなたの答えを編集する必要はありません申し訳ありませんが、私はちょうど...痛い...それをコメントしたい
パボルナメル

非常に迅速な回答をいただき、ありがとうございます。何度もありがとう、これは私に多くの時間を安全に:)
パボルNamer

1
代替フルBASHちょうど/ binに/ SHを持っていない場合のために、あなたが使用できるseq代わりに、: for i in $(seq 1 100); do mkdir dir_$i; done
ダニエル・ルウェリン

同じ3回実行しようとしたときに、ディレクトリ '{1..3}'を作成します。何が間違っていたのでしょうか?
-soufrk


8

steeldriverによって与えられた本当に印象的な答えに少し何かを追加するには:

ゼロでパディングすることにより、「適切に」ソートするディレクトリを作成できます。

mkdir subdirectory_{001..100}

(この回答が気に入った場合は、steeldriverの回答に賛成票を投じてください。私はまだコメントできないか、そうしているでしょう。)


「subdirectory_ {001..100}」という名前のサブディレクトリを作成します。何が間違っていたかについての手がかり。
soufrk

わからない。ここではうまく機能します。bashを使用していますか?
MDeBusk
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.