我想创建一个固定大小的文件,其中填充了我选择的重复字符串。
到目前为止,我已尝试使用dd
创建文件,如下所示:
dd if=/dev/urandom of=foo_200kb bs=1024 count=200
但显然文件的内容是随机的。如何用我选择的字符串填充文件?
注意: 接受的答案适用于使用busybox shell(灰)的人 他们可以运行以下命令来获得类似的结果
yes foo | tr -d '\n' | dd of=foo_200kb bs=1024 count=200
答案 0 :(得分:3)
您可以使用流程替换:
dd if=<(yes foo) of=foo_200kb bs=1024 count=200
答案 1 :(得分:2)
您可以创建一个bash脚本来执行您需要的操作:
#! /bin/bash
word=$1
size=$2
length=${#word}
(( remainder = size % length ))
if (( remainder )) ; then
echo Warning: Truncating the last word >&2
fi
(( repeat = size / length ))
for (( i=0; i < repeat ; i++ )) ; do
echo -n "$word"
done
echo -n ${word:0:remainder}
使用fill.sh bar 204800 > foo
答案 2 :(得分:2)
您可以在printf
和head
使用大括号展开:
$ printf '%.0sbar' {1..100000} | head -c 200000 > foo
$ wc -c foo
200000 foo
我绝对更喜欢dd
解决方案。