如何创建包含基本内容的多个文件 - Parrot Linux

如何创建包含基本内容的多个文件 - Parrot Linux

我想知道如何在一个文件夹中创建 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

相关内容