フォルダ内のコンテンツを含むx個のファイルを作成する方法を知りたいですか?
例えば:
ホームディレクトリにあるファイルテストフォルダに、基本的なコンテンツを含む250個のファイルを作成したいと思います。
私が本当に支援が必要なのは、bashShellを使用してテスト目的でコンテンツを含む多くのファイルを作成する方法です。
どんな助けでもいただければ幸いです。
コンテンツを含むファイルを作成して250回実行するループをコーディングできます。
for i in $(seq 1 250) ; do echo -n "content" > ~/test/file$i ; done
説明:
seq 1 250
:1から250までの数値を表示します。これは、必要な実行量をカウントするためにによって使用されます。echo -n "content" > ~/test/file$i
:ホームディレクトリにある「test」フォルダのファイルに「content」を保存します。echo -n > file$i
よりも高速であるため、touch file$1
を使用することをお勧めします。
>> time ./01.sh
./01.sh 0,03s user 0,06s system 28% cpu 0,316 total
>> time ./02.sh
./02.sh 0,01s user 0,00s system 77% cpu 0,017 total
1.shコンテンツ:
#!/bin/bash
for i in {001..250} ; do touch ./01/file$i ; done
2.shコンテンツ:
#!/bin/bash
for i in {001..250} ; do echo -n > ./02/file$i ; done
まず、次の単純なbashforループから始めることができます。
for i in {001..250} ; do touch ./file$i ; done
これにより、file001からfile250までの名前の250個の空のファイルが現在のディレクトリに作成されます。
タッチ(この場合)は、ファイルが存在しない場合はファイルを作成するだけです。空のファイル。何かを含むファイルを作成する場合は、do
ループのfor
部分を変更できます。例えば do cp ./master.file ./newfile.$i
-これはmaster.fileと呼ばれるファイルを250の新しいファイルにコピーし、それらはnewfile.001からnewfile.250までと呼ばれます。
混乱しすぎませんか?これらがbashでどのように機能するかを理解するのに少し時間がかかりましたが、一度管理すると、ほぼ毎日使用しています。それで、遠慮なく尋ねてください、私はそれをもっとそして/またはよりよく説明しようとします。
前の(非常に良い)答えを補足するために、ファイルにいくつかのコンテンツを入れることに焦点を当てます-この場合、3つのランダムな英語の単語とランダムな数字:
$ for a in {001..009}
do
(shuf -n 3 /usr/share/dict/words ; echo $RANDOM) > FILE_$a
done
生成されたファイルの例:
$ cat FILE_005
atrophy
grays
backdate
9612