我想知道如何在一个文件夹中创建 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的数字。for将使用它来计算您需要运行多少次。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