
我想知道如何在一個資料夾中建立 x 個包含內容的檔案?
例如:
我想在我的主目錄中的文件測試資料夾中建立 250 個包含基本內容的檔案。
我真正需要幫助的是如何使用 bash shell 創建大量包含用於測試目的的內容的檔案。
任何幫助,將不勝感激。
答案1
您可以編寫一個循環來建立包含內容的檔案並執行 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」資料夾中的檔案。
我更喜歡使用,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
01.sh內容:
#!/bin/bash
for i in {001..250} ; do touch ./01/file$i ; done
02.sh內容:
#!/bin/bash
for i in {001..250} ; do echo -n > ./02/file$i ; done
答案2
首先,您可以從這個簡單的 bash for 迴圈開始:
for i in {001..250} ; do touch ./file$i ; done
這將在目前目錄中建立 250 個空文件,名稱為 file001 到 file250。
Touch(在本例中)僅建立一個檔案(如果該檔案不存在)。空的文件。如果您想建立其中包含某些內容的文件,您可以更改循環do
的部分for
。例如do cp ./master.file ./newfile.$i
,它將把名為 master.file 的檔案複製到 250 個新檔案中,這些檔案將被稱為 newfile.001 到 newfile.250。
是不是太混亂了?我花了一段時間才理解這些東西在 bash 中是如何運作的,但一旦我明白了,我幾乎每天都會使用它。所以請隨意詢問,我會盡力解釋更多和/或更好。
答案3
作為對先前(非常好的)答案的補充,我將專注於在文件中放入一些內容 - 在本例中,是 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