创建具有特定零数的新文件的最快方法

时间:2016-01-22 05:57:19

标签: linux bash

我有一个目录树,在每个目录中都有一个名为zero-file
的文件 我希望使用特定数量的零来初始化此文件,例如10000000000 我想写ASCII字符' 0'
我找到了2个解决方案

for i in `seq 1 10000000000`
do
    echo -n 0 >> zero-file
done 

第二个是:我初始化了一个名为base的文件,并在每个目录中复制了这个文件

cp base zero-file

这更快。 我想知道是否存在更快的方式。

3 个答案:

答案 0 :(得分:9)

尝试将/dev/zero用作仅包含零的虚拟输入文件。您可以使用dd复制固定数量的字节:

dd if=/dev/zero of=zero-file bs=1 count=10000000000

这将从/dev/zero复制一个字节10000000000次到zero-file。您可以根据需要调整块大小和计数。

答案 1 :(得分:4)

将零写入零文件:

dd if=/dev/zero bs=1 count=10000000000 | tr '\0' '0' > zero-file

答案 2 :(得分:1)

根据@Cyrus的回答:

dd if=/dev/zero bs=1 count=10000000000 | tr '\0' '0' > zero-file
你说:

  

我有一个目录树,在每个目录中有一个名为的文件   零文件

因此你必须多次执行此命令 我的想法是将其保存在文件中一次,而其他目录则使用包含那些0的文件。

#for the first time
$ dd if=/dev/zero bs=1 count=10000000000 | tr '\0' '0' > zero-file
#for other directories
$ dd if=../zero-file of=zero-file bs=1 count=10000000000