使文件大小至少为 1MB

使文件大小至少为 1MB

我正在尝试通过自己制作一个操作系统并在虚拟机中测试它来了解操作系统,但VBoxManage convertfromraw不允许我的源文件非常小(512B)。

是否有任何 bash 命令可以执行以下操作(伪代码),同时仍保留文件的内容?

if (FILE.size < 1MB) {
    FILE.resize(1MB);
}

答案1

假设 Linux 和现代文件系统(安全 - 仅增加文件):

fallocate --length=1M yourfile

没有 fallocate(创建一个文件在增长时;请小心大小):

truncate --size=1M yourfile

不使用 fallocate(超过 2 GB 的文件需要 64 位系统):

file="yourfile"
want=$(( 1 * 1024 * 1024 ))

size=$(stat -c %s "$file")
if (( want > size )); then
    head -c $(( want - size )) /dev/zero >> "$file"
fi

答案2

另一个线程

dd if=/dev/zero bs=1 count=NUMBER >> yourfile

这将读取/dev/zero并附加到yourfile NUMBER字节。

相关内容